int * a[10] ; 定义一个指针数组,该数组共有10个元素,每个元素均是一个int型指针。
int (*a)[10] ; 定义一个数组指针。该指针指向一个含有10个元素的数组的地址。 即指向二维数组的指针。通常如果要修改一个二维数组的值时,需要定义一个数组指针作为函数参数。或者 int a[][10]作为形参。
int b[10] = {……};
a = b ; 编译时此处会出错。
int a =10 ;
int *p = &a ;
int **pp = &p ; 定义一个二级指针,指向了一个一级指针的地址。
**pp = 100 ; 通过二级指针修改内存的值。
*pp=10 ; 相当于将p指向了编号为10的这块内存,p成了野指针。
函数指针:
int (*p)(int ,int ) ; 定义一个函数指针,函数的参数为两个Int , 返回值是 int 。
要调用时, p = 对应的函数名即可 。