首先struct的定义在c和c++是不同的
struct student{
int id;
}stu;//c
int main(){
stu.id = 10;
//student stu1; Wrong
struct student stu1;
}
这样只是定义了一个结构体变量 stu。声明其他结构体变量时需要用struct关键字
typedef struct student{
int num;
}stu;
int main(){
stu wxy,why;
wxy.num = 6;
why.num = 8;
//stu.num = 10; Wrong
}
这里stu就不再是一个结构体变量了,而是student类型的结构体的一个别名。
stu == struct student
struct student{
int id;
}stu;//c++
int main(){
stu.id = 10;
student stu1;
//can use
}
而c++中不用typedef 就直接可以用student来创建student结构体类型。