1.指针是什么:一般说的是地址,口头说的是指针变量,指针变量就是一个变量,是指针变量存放地址.
int a=10;
int* pa=&a;//pa是指针变量的名字
*pa=20;//解引用
2.指针类型的意义:操作时候的权限
char *ch='w';
char*pchar=&ch;
3.指针数组实际上就是数组,每个元素都是指针。
int*pa;
int*pb;
int*pc;
int *arr[3]={pa,pb,pc};
4.数组名是什么?
大部分情况下表示首元素地址,sizeof(数组名) &(数组名)--数组表示的是全部数组
int arr[10];
parr=&arr; ( int*pa=&a;)pa是整形指针 还有字符指针pchar
数组指针:int (*parr)[10]=&arr;->parr就是数组指针。
5.函数指针
函数也是有地址的,
int(*pf)(int,int)=&Add;//函数的地址放到函数指针
int ret=(*pf)(2,3);//输出5。也可以int sum=pf(2,3);
6存放函数指针的数组
int (*pfarr[])(int,int) ->int(*)(int,int)->函数指针类型
7.回调函数
通过函数指针调用的函数 qsort(s,sz,sizeof[0],cmp_name)