用typedef后不是说原来的结构体类型还可以用吗,为什么不可以用S定义结构体变量

用typedef后不是说原来的结构体类型还可以用吗,为什么不可以用S定义结构体变量
最新回答
玩命丕玩心

2021-04-20 00:04:18

使用下列语句定义:
typedef struct S
{
int g;
char h;
}T;
之后,你就定义了一个结构体类型,这个类型的含义如同int、char类似,这个结构体类型的名字是T,它的用法也跟int、char相同,比如:
int i,j;//声明i、j是整型变量
char m,n[20];//声明m是字符变量,n是字符数组变量
T p,q[10];//声明p是T型变量,q是T型数组变量

还要知道两点:
1、T类型也可以称作“struct S”类型,比如可用struct S p,q[10];来代替上一句。但要注意,struct S不能分开,单独一个S什么也不是。
2、S、struct S和T都不是变量名,不是变量,不能对他们赋值。
所以,ACD选项都是错误的。
姐的智商都拿去卖萌了

2021-08-13 16:19:31

这个是考你结构体的用法。

在C中定义一个结构体类型要用typedef:

 typedef struct Student

 {

   int a;

 }Stu;



 于是在声明变量的时候就可:

  Stu stu1;(如果没有typedef就必须用struct Student stu1; 来声明)



 这里的Stu实际上就是 struct Student的别名。

  Stu==struct Student



 另外这里也可以不写Student

(于是也不能struct Student stu1; 了,必须是Stu stu1;)

 typedef struct

 {

    int a;

 }Stu;