举个例子:
#include<stdio.h>
int ff(int *p){
int *a=p;
int b=*a;
// ......
}
int main(){
int b=3;
ff(&b);
// ......
}
这是一个伪函数,主要用来说明调用函数的指针传参 *p,根据调用参数的声明,我们知道这个传参指针为一个整型指针传参,也就是说p主要用于传输地址用的。
你在看这里的时候或许会对这个“*”感到特别迷惑,给你大概解释一下:“int *a”中的“*”是表示声明的a是一个整型指针变量,传参p中的“*”也是这样的,只不过他们一个是传参,一个是局部变量罢了。接下来的“int b=*a”中的“*”则是取值的意思了,意思就是取出指针变量a中的值,好的!那么这个a中的值是多少呢?从主函数开始看:主函数中定义一个局部的整数型变量b,这里b被赋值为3,通过调用子函数“ff(&b)”来看,“&b”则表示取了b的地址。好!这是“&”的作用。接下来子函数ff就把b的地址传给了指针传参p。最后举个小例子:快递员B从快递员A的手中接到了快递并送给你。快递员只需要传送快递——“&(取地址)”而不需要拆开快递看看里边是啥,当你收到快递后打开快递——“*(取值)”后拿出东西使用。
[此贴子已经被作者于2018-4-25 11:27编辑过]