typedef struct S {int g;char h ;}T;

A)可用S定义结构体变量;B)可以用T定义结构体变量
C)S是struct类型的变量;D)T是struct S类型的变量

答案先D 为什么?能解释一下吗?
最新回答
别逗本宫

2024-04-20 00:53:15

楼上,我无语...

答案应该是B...

这个定义的结果就是T等价于struct S

你可以struct S a;或者T a;这样定义变量。

直接S a;是不可以的,所以A不对。
而S和T都不是变量标识符,所以C和D不对
许我个未来

2024-04-20 08:13:41

我也无语了

答案应该是B...
typedef表示的是 把struct s{}这个结构体类型 定义为一个新类型名字叫T
可以用两种方法定义一个该结构体的实例:
struct S p;
T p;
注意typedef的定义啊
另外,在C++里面,已经把struct 默认为类类型了,因此在支持C++的编译器里面就可以使用
S p;但是在C里面这个是错误的
诺贝尔可爱奖

2024-04-20 09:55:52

你先看这,typedef这个定义是定义一个新的类型,而结构体的基本结构是 struct x{}; 这个也就决定了S是这个结构体的一个名称,而T是用来表示这个S的结构体的,比如说,typedef int F,现在F的意思也就是int了,而在上面,T当然也就是代表S类型的结构变量咯。
永不言弃

2024-04-20 08:59:15

答案可以选D的,这个要看你是用哪个语言写的,如果是C 语言的话,那么T 就是结构体的变量,如果是C ++语言的写的话,就是用T 定义结构体变量。。