问题 单项选择题

设有如下说明
typedef struct ST
long a; int b;char c[2]; NEW;
则下面叙述中正确的是______。

A.以上的说明形式非法

B.ST是一个结构体类型

C.NEW是一个结构体类型

D.NEW是一个结构体变量

答案

参考答案:C

解析: 本题考查结构体的定义。将题中的定义语句去掉前面的typedef和后面的NEW,就是一条完整的结构体定义语句。此时要声明该结构体变量时需用struct加结构体名一起来声明,即struct ST一起构成一个结构体类型。若保留NEW,就是一条结构体定义的同时声明一个结构体变量NEW的语句。C语言中允许用typedef说明一种新类型名,语法格式为:
typedef 类型名 标识符;
以后就可以用该标识符代替被说明的类型了。所以当前面存在typedef时,NEW就成了struct ST的新名称,即NEW成了一个结构体类型,而sT只是一个结构体名。所以,选项C正确。

单项选择题
单项选择题