(可能有错误的理解,请大家指出* =*)
1) #define a int[10] (全错,直接文本替换)
A) a[10] a[10];
B) a[10] a;
C) int a[10];
D) int a;
E) a b[10];
F) a b;
G) a* b[10];
H) a* b;
2) typedef int a[10];(a为定义一个int型大小为10的数组)
A) a[10] a[10];//错
B) a[10] a;//错
C) int a[10];//对,a是数组名,定义一个数组
D) int a;//对,定义一个变量a
E) a b[10];//对,定义一个二维数组b[10][10]
F) a b;//对,定义一个数组b[10]
G) a* b[10];//对,定义一个指向二维数组的指针b
H) a* b;//对,定义一个指向一维数组的指针b
3) #define a int*[10] (全错,直接文本替换)
A) a[10] a[10];
B) a[10] a;
C) int a[10];
D) int a;
E) a b[10];
F) a b;
G) a* b[10];
H) a* b;
4) typedef int* a[10]; (a的功能:定义一个大小为10指针数组)
A) a[10] a[10];
B) a[10] a;
C) int a[10]; //对,a是数组名,定义一个数组
D) int a;//对,定义一个变量a
E) a b[10];//对,定义一个指向二维数组的指针b
F) a b;//对,定义一个指针数组b[10]
G) a* b[10];对,定义一个指向二维数组的二级指针b
H) a* b;对,定义一个指向二维数组的二级指针b
5) #define a int*[10] (全错,直接文本替换)
A) a[10] a[10];
B) a[10] a;
C) int a[10];
D) int a;
E) a b[10];
F) a b;
G) a* b[10];
H) a* b;
6) typedef int (*a)[10] (a的功能:定义一个指向大小为10的数组的指针)
A) a[10] a[10];
B) a[10] a;
C) int a[10];//对,a是数组名,定义一个数组
D) int a;//对,定义一个变量a
E) a b[10];//对,定义一个指向二维数组的指针
F) a b;//定义一个指向大小为10的数组的指针
G) a* b[10];//对,定义一个指向(指向二维数组的)指针的指针,即二级指针
H) a* b;//定义一个指向(指向大小为10的数组的)指针的指针
7) #define *a * int[10] (全错,直接文本替换)
A) a[10] a[10];
B) a[10] a;
C) int a[10];
D) int a;
E) a b[10];
F) a b;
G) a* b[10];
H) a* b;
8) typedef int * (*a)[10] (a的功能:定义一个指向大小为10的指针数组的指针)
A) a[10] a[10];
B) a[10] a;
C) int a[10];//对,a是数组名,定义一个数组
D) int a;//对,定义一个变量a
E) a b[10];对,定义一个指向二维指针数组的指针
F) a b;//定义一个指向大小为10的指针数组的指针
G) a* b[10];//定义一个指向(指向二维指针数组的)指针的指针
H) a* b;定义一个指向(指向大小为10的指针数组的)指针的指针