1.用指针,函数调用实现交换两个变量值
#include<stdio.h>
int exchange(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
return 0;
}
int main()
{
int i=9,j=2;
int *p1,*p2;
p1=&i;
p2=&j;
exchange(p1,p2);
printf("p1=%d,p2=%d\n",*p1,*p2);
return 0;
}
2.函数指针
谭浩强书P286例子:int(*p)(int,int)定义了一个函数指针,特别的*p的括号不能去掉。函数指针=返回值+指针变量+参数列表,这个参数列表要跟这个函数指针指向的函数完全对应。
p=max表示将max函数的首地址赋给指针p,这样p的内容(地址)就是max所指的地址,那么p就指向max函数的入口地址,那么*p就是p这个地址中的内容,在这里就是从开始地址进入,也就是调用函数max了。