作业帮 > 语文 > 作业

typedef struct S{int g;char h;}T;则下列叙述正确的是B可用T定义结构体变量和T是一个结构

来源:学生作业帮 编辑:作业帮 分类:语文作业 时间:2024/11/06 00:26:49
typedef struct S{int g;char h;}T;则下列叙述正确的是B可用T定义结构体变量和T是一个结构体变量有区别吗
(39)若有以下语句
Typedef struct S
{int g; char h;}T;
以下叙述中正确的是
A)可用S定义结构体变量
B)可用T定义结构体变量
C)S是struct类型的变量
D)T是struct S类型的变量
这种题型有好记的方法吗
问题是可用T定义结构体变量和T是一个结构体变量有区别吗,那句话对哪句话错
正确的是B,请查看谭浩强C语言第二版 294页关于 typedef 说明.
Typedef struct S

int g;
char h;
}T;
typedef 声明新的类型名,也就是定义一个新的数据类型.如果你看除去 typedef ,T就变成了声明一个结构体类型S:
struct S

int g;
char h;
};
加上typedef,T之后,这个T就等效于 struct S,是一个结构体类型.也就是说,typedef 只是将 struct S 另定义为一种新的数据类型T.
再看答案:
A 错误, S 不可以定义结构体变量,要加上 struct ,也就是 struct S + 结构体变量
B 正确, 因为T 等效于 struct S.
C 错误 S 不是变量,要和 struct 一起才有意义.
D 错误 T不是变量,是一种新的类型,等效于 struct S.