转载:
https://www.cnblogs.com/FYXin/p/5794719.html
代码:
结构体的定义:
1.
struct Person {
char name[20];
char sex;
float height;
int age;
}; 只有结构体的定义
2.
struct Person {
char name[20];
char sex;
float height;
int age;
} xiaohong; 附加该结构体类型的“结构体变量”的初始化定义结构体
这种定义就相当于
struct Person {
char name[20];
char sex;
float height;
int age;
};
struct Person xiaohong;
定义另一个结构体
struct Person xiaoming ; 定义一个变量名为xiaoming的结构体
这种每次都要加一个struct关键字的写法有点麻烦
3.
typedef struct Person {
char name[20];
char sex;
float height;
int age;
}Per; 这种写法在声明结构体变量的时候就可以用 Per xiaoming;
如果没有typedef 就必须用 struct Person,这里的Per实际上就是 struct Person的别名
另外这里也可以不写Student(于是也不能struct Student stu1;了)
typedef struct
{
int a;
}Stu;
但在c++里很简单,直接
struct Student
{
int a;
};
于是就定义了结构体类型Student,声明变量时直接Student stu2;
也就是说,C++里的struct本身已经含有typedef的部分功能了。