小程序页面之间进行传值的操作办法
808
2022-11-22
1. 指针有什么用?
1.1.1 指针应用之一,交换两个变量的值
比如:
1 void swap(int *pa,int *pb) 2 3 { 4 5 int t=*pa; 6 7 *pa=*pb; 8 9 *pb=t;10 11 }12 13 int main(void)14 15 {16 17 int a=5,b=6;18 19 swap(&a,&b);20 21 printf(“%d%d\n”,a,b);22 23 24 25 return 0;26 27 }
指针用在函数返回多个值,传进去的参数实际上是需要保存带回来的结果变量。
1 int main(void) 2 3 { 4 5 int a[]={1,2,3,4,5,6,7,8,9,12,13,14,15,23,24,56}; 6 7 int min,max; 8 9 minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);10 11 printf(“min=%d,max=%d\n”,min,max);12 13 return 0;14 15 }16 17 void minmax(int a[],int len,int *min,int *max)18 19 {20 21 int i;22 23 *min=*max=a[0];24 25 for(i=1;i
2 指针应用场景二,函数返回运算状态,结果通过指针返回。常用的套路是让函数返回特殊的不属于有效范围内的值来表示出错。-1或0(在文件操作会看到大量的例子)。但是当任何数值都是有效的可能结果时,就得分开返回了。
例,两个整数做除法的函数。
1 int divide(int a,int b,int *result) 2 3 { 4 5 int ret=1; 6 7 if(b==0) 8 9 {10 11 ret=0;12 13 }14 15 else16 17 {18 19 *result=a/b;20 21 }22 23 return ret;24 25 }26 27 int main(void)28 29 {30 31 int a=5;32 33 int b=2;34 35 int c;36 37 if(divide(a,b,&c)38 39 {40 41 printf(“%d/%d=%d\n”,a,b,c);42 43 }44 45 46 47 return 0;48 49 }
后续的语言(C++,Java)采用了异常机制来解决这个问题。
指针最常见的错误:定义了指针变量,还没有指向任何变量,就开始使用指针。
参考文献:
mooc,翁恺,c语言进阶
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~