各种指针的定义:
//一个整型数:
int a;
//一个指向整型数的指针:
int *a;
//一个指向指针的指针,它指向的指针指向一个整型数:
int **a;
//一个有10个整形数的数组:
int a[10];
//一个有10个指针的数组,每个指针指向一个整型数:
int *a[10];
//一个指向有10个整形数的数组的指针:
int (*a)[10];
//一个指向指针的指针,被指向的指针指向一个有10个整形数的数组:
int (**a)[10];
//一个指向数组的指针,该数组有10个整形指针:
int *(*a)[10];
//一个指向函数的指针,该函数有一个整形参数并返回一个整形数:
int (*a)(int);
//一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整形数:
int (*a[10])(int);
//一个函数的指针,指向的函数的类型是有两个整形并且返回一个函数指针的函数,返回的函数指针指向
//有一个整形参数且返回整形数的函数:
int (*(*a)(int,int))(int);
小技巧:抓关键词
数组指针: (*a)[10]
指针数组: (*a[10])
整形数:int
整形指针: int*
一个整形参数:(int)
两个整形参数: (int, int)
最后一题 可以看成:
int (*b)(int); b=(*a)(int, int)
int (*(*a)(int,int))(int)