c语言设计有以下语句,下面描述中正确的是_____。typedef struct S{ int g; char h;}
1个回答

正确的是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.