问题
单项选择题
设有如下说明:
typedef struct ST
long a; int b; char c[2]; NEW;
则下面叙述中正确的是( )。
A) 以上的说明形式非法
B) ST是一个结构体类型
C) NEW是一个结构体类型
D) NEW是一个结构体变量
答案
参考答案:C
解析: 本题考查的是结构体的定义与typedef的用法。将题目中的定义语句去掉前面的typedef和后面的NEW(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,ST是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,struct ST一起构成一个结构体类型,就好像字符类型char。若只去掉前面的typedef,就是一条结构体定义同时声明一个结构体变量NEW的语句,因为NEW的前面部分是struct ST的完整写法,可以看做是struct ST NEW,声明一个变量。