指针的使用
应用场景一
交换两个变量的值
void swap(int *pa,int *pb){int t=*pa;*pa=*pb;*pb=t;}
什么时候使用指针:
1、函数返回多个值,某些值就只能通过指针带回
2、传入的参数实际上是需要保持待回的结果的变量
应用场景二
函数返回运算的状态,结果通过指针返回
常用的套路是让函数返回特殊的不属于有效范围内的值来表示出错:-1或0(在文件操作会看到大量例子);
但是当任何数值都是有效的可能结果时,就得分开返回了。
例:
#include<stdio.h>//如果除法成功返回1,失败返回0;int divide(int a,int b,int *result);int main(){int a=5;int b=2;int c;if(divide(a,b,&c)){printf("%d/%d=%d\n",a,b,c);}return 0;}int divide(int a,int b,int *result){int ret=1;if(b==0){ret=0;}else{*result=a/b;}return ret;}
注:常见的错误:
定义了指针变量,还没有指向任何变量,就开始使用指针
