C中:
//定义结构体法一
struct Student
{
int a;
};
//用结构体声明变量
struct Student stu1; // 正确
Student stu2; // 错误,struct Student 放在一起才是定义的结构体类型
//定义结构体法二
typedef struct Student{
int a;
}Stu;
//用结构体声明变量
struct Student std1; // 正确
Stu std2; // 正确, Stu 是 struct Student 的别名
Student stu2; // 错误,同法一
//定义结构体法三
typedef struct {
int a;
}Stu;
//用结构体声明变量
Stu std1; // 正确
//定义结构体法四
struct Student{
int a;
}Stu; // C中是否支持此定义?
C++中:
//定义结构体法一:
struct Student
{
int a;
};
//用结构体声明变量
struct Student stu1; // 正确
Student stu2; // 正确,这是与C不同之处
//定义结构体法二
typedef struct Student{
int a;
}Stu;
//用结构体声明变量
struct Student std1; // 正确
Stu std2; // 正确, Stu 是 struct Student 的别名
Student stu2; // 正确
//定义结构体法三
typedef struct {
int a;
}Stu;
//用结构体声明变量
Stu std1; // 正确
//定义结构体法四
struct Student{
int a;
}Stu;
// Stu就是一个变量,可以直接使用
Stu.a = 10;