1、struct
1)、结构声明:
struct Student
{
int num;
char name[20];
};
上面这段代码只是声明了一个由一个int型变量,和一个char型数组构成的结构,并没有创造一个实际的数据对象;
注意:我看到其他博客上说在C语言中这种声明方式会报错,必须有typedef才行,只有C++才能这么声明,但是我在C Primer看到就是这么声明结构的,并且在VS上得到证实不会报错,不知道其他博客上说的是什么意思。
2)、定义结构变量:
struct Student stu; //声明了一个名叫 stu 的结构变量
3)、可以把上面两步合起来写成:
struct Student
{
int num;
char name[20];
}stu;
此时,stu是一个结构变量,可以直接使用,如给该变量赋值:
stu.num=1002;
4)、也可以把声明结构的过程和定义结构变量的过程合并成一步写成:
struct
{
int num;
char name[20];
}stu;
即省略了标记“Student”, 这样该结构就不能重复使用了,此时的stu也是一个结构变量。
2、typedef struct
1)、声明:
typedef struct Student
{
int num;
char name[20];
}student;
此时,用 student 代替 struct Student 作为简写,student==struct Student, stu不是结构变量,可以用stu声明结构变量:
student stu;
struct Student stu;
以上两句语句完全等价,stu是一个结构变量,可以直接使用了。
3、初始化结构体:
struct Stuedent stu={"xiaoqiang",1002};