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.