c语言 为什么不是c 求解释

如题所述

第1个回答  2016-03-20
有了typedef char T[10];后,T就是具有10个char型元素的数组的类型。那么T *a;就声明a是指向“具有10个char型元素的数组”的指针,或叫声明a是T*型指针。前者显然就是B项的解释。C项的解释是声明a是指向一个char元素的指针或叫声明a是char *型指针。所以显然不是C选项。
第2个回答  2016-03-20
typedef char T[10] 即声明一个数据类型T,它代表含有十个char类型元素的数组,即T=char [10]。然后声明T *a,根据上文T=char [10],可以解析为(char [10]) *a。即首先a是一个含有十个元素的数组,其次数组中的每个元素都是一个char*型的指针。也即a是一个指针数组。而运算符的优先级是[]大于*,因此即使去掉括号,char *a[10]仍然被解析为a先与[10]结合,代表a是一个十元素数组。因此答案选择D。B中由于有一个括号,a先和*结合,代表a是一个指针,它指向一个含有十个元素的数组,因而a是一个数组指针,这是错误的。本回答被提问者和网友采纳
第3个回答  2016-03-20
a是一个指向有10个字符型数据的数组的指针追答

c选项是,指向一个字符型数据的指针