一、数组指针(指向数组的指针)
1.int a[10] = {1,2,3,4,5,6,7,8,9,0}
(1) &a得到一个指向长度为10的一位整形数组的指针。
(2)指针数组:int *p[10]; 定义了一个长度为10的指针数组;
数组指针 :int (*p)[10] :定义了一个指向数组的指针;
2.二维数组中 int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12}
(1) a <=> &a[0]
(2) *(a+0) <=> a[0] <=> &a[0][0] -------int * 型
(3)*(*(a+0)+1) <=>a[0][1] *(*(a + i)+j) <=> a[i][j];
二、指向函数的指针(调用函数)
1.int (*pfn)(int a,int b)= NULL;定义了一个 两个参数为整形且返回值为整形的函数指针 ; pfn = 函数名;
函数的函数名为该函数的入口地址;
2.回调函数,降低程序的耦合性;
3.调用库函数qsort实现快速排序
三、指向指针的指针(指的是一个指针变量,该变量的值是另一个指针的地址。)
1.char * *p char * 为基类型 *为类型说明符 p为指针变量;
四、指针数组(其元素是指针,每个指针可以指向一个变量或数组的地址。)
1.char *s【3】 ;定义了一个长度为三的字符型指针数组;
2.当一个指针数组作为实参传递的时候对应的形参为指针的指针;