为什么c是错误的?谁可以解释一下?

typedef struct S

{

int g;

char h;

} T;

以下叙述中正确的是()。

A

可用S定义结构体变量
B

可用T定义结构体变量
C

S是struct 类型的变量
D

T是struct S类型的变量

S是结构体类型名,不是变量名。选B

S只是你结构体的名称,不是你变量的名称

struct 根本不是一个类型,所以没有struct 类型的变量
struct S才是一个类型
同理,class A也一样,A并不是一个class类型的变量,class A本身就是一个类型,A是类型的名字不是变量的名字
类似的还有#define N 5,N也不是define 类型的变量