a) 一个整型数(An integer)
b) 一个指向整型数的指针(A pointer to an integer)
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)
d) 一个有10个整型数的数组(An array of 10 integers)
e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)
f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer
1. int *( *( *a[5]) ( ) ) ( );
Answer:a是一个数组,它的5个元素都是指向函数的指针,该函数仍旧返回一个指向函数的指针。
2. void * (*b) ( char, int (*) ( ) );
Answer:b是一个函数指针,该函数接受两个形参,分别是char型和一个函数指针,返回值类型为void *。
3. float ( *(*c[10]) (int *) ) [5];
Answer:c是一个数组,它的10个元素都是指向函数的指针,所指函数接受int *型形参并返回一个指向数组的指针,这个数组包含5个float元素。
4. int ( *(*d)[2][3] ) [4][5];
Answer:d是一个指向数组的指针,此数组的元素又是一个指向数组的指针。
5. int (*(*(*e) ( int* ))[15]) (int*);
Answer:e是一个函数指针,该函数的返回值是一个指向数组的指针,所指向数组的元素又是函数指针,指向的函数具有int *型形参,返回值类型为int。
6. int ( *(*f[4][5][6]) (int*) ) [10];
Answer:f是一个数组,这个数组的元素是函数指针,这类函数具有int *型形参并返回指向数组的指针,所指向的数组的元素是具有10个int型元素。
7. int *(*(*(*g)( ))[10]) ( );
Answer:g是个指向函数的指针,它所指向的函数返回一个指向包含10个元素的数组的指针,数组元素的类型是指向函数的指针,所指向的函数不接受参数且返回值类型为int *。