指针的应用场景一
· 交换两个变量的值
void swap(int *pa, int *pb);//定义指针*pa和*pb
int main(void)
{
int a = 5;
int b = 6;
swap(&a, &b); // swap取得a和b的地址
printf("a=%d,b=%d\n",a,b);
return 0;
}
void swap(int *pa, int *pb)
{
// swap函数对*pa 和*pb进行交换
int t= *pa;
*pa = *pb;
*pb = t;
}
运行结果
a=6,b=5
在这里我们通过swap函数对a的值和b的值进行了交换
指针应用场景二
· 函数返回多个值,某些值就只能通过指针返回
· 传入的参数实际上时需要保存待会结果的变量
/**
取出一组数组里的最小的和最大的值
**/
void minmax(int a[], int len, int *min, int *max);
int main(void)
{
int a[] = {1,2,3,4,5,6,7,8,9,12,13,14,16,17,21,23,55,};
int min,max;
//main里调用minmax数
//通过sizeof(a)/sizeof(a[0]计算元素长度
//通过&min,&max 取得地址交给minmax函数
minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);
printf("min=%d,max=%d\n",min,max);
return 0;
}
void minmax(int a[], int len, int