问题:
typedef int arr5[5];
typedef arr5 * p_arr5;
typedef p_arr5 arrp10[10];
arr5 togs;//togs是具有5个元素的int数组?为什么?
p_arr5 p2;//p2是一个指针,指向具有5个元素的int数组
arrp10 ap;//ap是具有10个元素的指针数组,每个指针指向具有5个元素的int数组
从网上看到的一种比较好理解的解释:
首先把typedef去掉,看定义的变量(标识符)的类型;
加上typedef就是用标识符,
来表示 不加typedef定义 同名变量(标识符)的,
那个变量(标识符)的类型;
//例如,去掉typedef
int arr5[5]; //arr5 是个 int[5]; 即 5个元素的整型数组
//加上 typedef
typedef int arr5[5]; //arr5 就是 int[5] 这种类型的另一个名字,
//也就是说 arr5,就是5个元素的整型数组,这种类型
剩下的再依次理解。