目录
一、结构体类型的定义及初始化
将不同类型变量封装在一起。(本质是一种数据类型)
方法一:
先定义结构体类型,再定义结构体变量
struct Student(结构体类型名) //定义结构体类型
{
int num;
char name[20];
//成员列表
};
Student lucy={20,"lucy"}; //定义结构体类型的变量 +初始化
lucy.name="bob";//错误,name是字符数组变量名,不带这样赋值的
改为:strcpy(lucy.name,"bob");
方法二:
定义类型的同时定义结构体变量
#include<string.h> //memset的头文件
struct Student(结构体类型名)
{
int num;
char name[20];
//成员列表
}lucy;
Student bob;
memset(&bob,0,sizeof(bob)); //初始化为零,清空结构体
补充:void *memset(void *dst,void *val,void *size) :
将地址从dst开始,长度为size的所有字节赋值为 val
方法三:
定义一次性结构体类型
struct //无结构体类型名,无法在外定义结构体类型变量
{
int num;
char name[20];
//成员列表
}lucy;
*注意:
- 定义结构体类型时,系统不会为结构体类型开辟空间,当定义结构体类型的变量时才开辟空间。结构体中的成员具有独立的空间
- 不要给成员初始化值