问题 单项选择题

设有以下语句:typedef struct TT{char c; int a[4];}CIN; 则下面叙述中正确的是( )。

A.可以用TT定义结构体变量

B.TT是struct类型的变量

C.可以用CIN定义结构体变量

D.CIN是struct TT类型的变量

答案

参考答案:C

解析: 将题目中的定义语句去掉前面的typedef和后面的CIN(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,TT是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,struct TT一起构成一个结构体类型,就好像字符类型char。若只去掉前面的typedef,就是一条结构体定义同时声明个结构体变量CIN的语句,因为CIN的前面部分是struct TT的完整写法,可以看作是struct TT。C语言允许用typedef说明一种新类型名,其语法格式为: typedef 类型名 标识符; 以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给struct TT的定义一个新的名称CIN。所以,此时的CIN是一个结构体类型,它相当于struct TT,即可以和char一样单独用来声明该结构体变量,而TT只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。

填空题
解答题