指针高级应用
函数指针
函数就是存储在代码段中的一段数据,当被调用时跳转到那个位置去执行,而函数名就是这段数据的首地址(函数指针),因此函数名就是个指针。
程序员可以自定义函数指针来指向函数
- 写出函数的声明;
- 为函数名添加小括号
- 修改函数名,并在函数名前加*
ATTENTION:定义好函数指针后就可以指向函数了,通过()就可以调用函数,。而不用*解引用。
回调 :函数指针真正的作用是可以把函数当作参数在函数之间进行传递,然后达到一种效果:多年前写的代码来调用现在所写的代码,这种模式叫回调。
二级指针
指向指针的指针,它是个指针变量,但它存储的是指针变量的地址。
函数之间共享普通变量使用一级指针,共享指针变量需要使用二级指针。
定义:int** pp=&p;
指针数组
由指针变量构成的数组。
定义:char* arr【40】//定义一个长度为5的数组成员类型是char*
相当于定义的5个char*指针变量,char *p1,*p2,*p3,*p4,*p5
使用:char arr[0]=“hehe”; printf("%s",arr[0]);
sizeof(arr)=20//指针类型,一共20个字节
数组指针
专门用来指向数组的指针。
int arr[10];
定义:int (*p)[10];//指针指向int类型的数组,元素个数为10
p+1=>40;
更多地用来指向二维数组。
(未完……)