1.一个有10个指针的数组,每个指针指向一个整型数:
int *a[10];
2.一个指向有10个整型数的数组指针:
int (*a)[10];
3.一个指向指针的指针,被指向的指针指向一个有10个整型数的数组:
int (**a)[10];
4.一个指向数组的指针,该数组有10个整形指针:
int *(*a)[10];
5.一个指向函数的指针,该函数有一个整形参数并返回一个整型数:
int (*a)(int);
6.一个有10个指针的数组,每个指针指向一个函数,该函数有一个整形参数并返回一个整型数:
int (*a[10])(int);
如何判断?
1.如果变量名直接和 “[ ]” 结合,说明该变量是个数组,“a[10]”外面的标识符代表数组里每个元素的类型
2.如果变量名直接和 “*” 结合,说明该变量是个指针“ *a ”外面的标识符代表该指针指向的数据类型
3. “[ ]” 的优先级高于 “*”
可以用以上方法由里向外、层层递进地描述出某变量到底是个什么东西,也可以通过反推写出根据条件定义的变量类型