网站规划与建设重要性理解与体会,服装设计自学软件,网上商城开发设计,站长之家 站长工具指针变量作为函数参数要点注意#xff08;已写至笔记#xff09; 1传参指针不加*#xff08;main中函数#xff09; 2收参指针要加*#xff08;被main调用的函数#xff09; 3传参指针名可与收参指针名不同#xff0c;不影响 4【问】如何看主函数中指针所指内容是否改变…指针变量作为函数参数要点注意已写至笔记 1传参指针不加*main中函数 2收参指针要加*被main调用的函数 3传参指针名可与收参指针名不同不影响 4【问】如何看主函数中指针所指内容是否改变 【答】调用函数中若未在改变传入指针的指向值前改变指针指向即未在改变*p前改变p指向则主函数中指针所指内容会变
【例1】如下代码的swap函数交换了main中传入的数指针变量作为函数参数往往都是想要达到这种效果
#includestdio.hvoid swap(int *q1,int *q2){ //接收指针类型参数故要加*参数名可与main中不同为体现此参数名写q而非p int tmp;tmp*q1;*q1*q2;*q2tmp;
}int main()
{ int a[150];int tmp;for(int i0;i5;i){scanf(%d,a[i]); }//小到大排序,选择排序 for(int i0;i4;i){int minni; //minn存放最小数的下标 for(int ji1;j5;j){if(a[j]a[minn]){minnj;}} int *p1a[i];int *p2a[minn];swap(p1,p2); //传参别加*要传地址才能变 }for(int i0;i5;i){printf(%d ,a[i]);}return 0;
}
【例2】但也有少量为了出而出的题在调用函数中改变p前改变就了p指向导致main中仍不变 ·注意fun函数中的pb;此句改变p前就改变了p的指向main中未变若无此句main就变为10
#includestdio.hvoid fun(int *p){ int b10;pb; //改变*p前就改变了p的指向main中未变若无此句main就变为10 *pb;
}int main()
{int a5,*pa;fun(p); printf(%d\n,a); //输出*p的值同a没变5 return 0;
}