指针的使用
应用场景一
交换两个变量的值
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;
}
注:常见的错误:
定义了指针变量,还没有指向任何变量,就开始使用指针