山不在高,有仙则名。水不在深,有龙则灵。
----CSDN 时时三省
一级指针的传参
示例:
这就是一个一级指针传参
思考:当一个函数的参数部分为一级指针的时候,函数能接受什么参数?
二级指针的传参
二级指针示例:
pa是一级指针
ppa是二级指针
二级指针是专门用来存放一级指针变量的地址
二级指针示例:
这里的**p2就是找的a的地址 所以如果打印a的话就可以直接打印20 因为上面**p2把它的结果改成了20
思考:当函数的参数为二级指针的时候,可以接受什么参数?
一级指针
int*p;-整形指针-指向整型的指针
char*pc;-字符指针-指向字符的指针
void*pv;-无类型的指针
二级指针
char**p;
int**p;
数组指针:指向数组的指针
int(*p)[4];
数组:
一维数组
二维数组
指针数组-存放指针的数组
函数指针
指向函数的指针
存放函数地址的指针
示例:
这里打印的就是add函数的地址
&地址函数名-取到的就是函数的地址
但是如果直接printf(“%p\n”,Add)也是可以打印出来它的地址但是数组名和&数组名是不一样的 但是函数名==&函数名
int 是函数的返回类型 pf指向的函数参数是(int,int)
如何调用这个函数指针
解引用pf找到函数Add
然后我们要去调用它把(3,5)这样的参数传过去
进行函数调用的时候这三种写法都可以