各种指针的定义:
1,一个整型数:int a;
2,一个指向整型数的指针:int *a;
3,一个指向指针的指针,它指向的指针指向一个整型数:int **a;
4,一个有10个整型数的数组:int a[10];
5,一个有10个指针的数组,每个指针指向一个整型数:int *a[10];
6,一个指向有10个整型数的数组的指针:int (*a)[10];
7,一个指向指针的指针,被指向的指针指向一个有10个整型数的数组:int(**a)[10];
8,一个指向数组的指针,该数组有10个整型指针:int* (*a)[10];
9,一个指向函数的指针,该函数有一个整型参数并返回一个整型数:int (*a)(int);
10,一个有10个指针的数组,每个指针指向一个函数,该函数有一个整型参数并返回一个整型数:int (*a[10])(int);
11,一个函数的指针,指向的函数的类型是有两个整型参数并且返回一个函数指针的函数,返回的函数指针指向有一个整型参数且返回整型数的函数:int (*(*a)(int,int))(int)
学过指针的同学可能对第11个指针的定义有点陌生,其实只要将其分成两个部分就能够更好地理解。
(1)我们知道一个函数的指针,指向的函数的类型是有两个整型参数并且返回一个整型数的函数的定义为:int (*a)(int,int)。
(2)进一步,如果指向的函数的类型是有两个整型参数并且返回一个指针的函数的定义可以写为:int *(*a)(int,int)。
(3)从而,如果指向的函数的类型是有两个整型参数并且返回一个函数指针的函数,返回的函数指针指向有一个整型参数且返回整型数的函数的定义可以写为:int *(*a)(int,int)(int)。