结构体类型的变量的初始化

上一篇文章讲了结构体的定义以及结构体类型变量的定义,这一篇我们来讲一下结构体变量的初始化。结构体变量的初始化既可以在定义变量的时候初始化,也可以定义完变量后,在单独给变量的成员变量赋值。

先定义一个结构体

struct student
{
        char name[32];        //姓名
        char sex[4];        //性别
        int num[12];        //学号
        int age;            //年龄
}lili={"莉莉","女","202201",17},john;
//lili这个变量是在定义的时候就初始化了,而john只定义了这个变量。

当然这里有标签名(student)就可以用另外一种方法定义变量
   

//定义变量并初始化,在初始化的时候,如果没有指定元素,
//就必须按结构体中成员列表的顺序初始化
struct student bear={"小熊","男","202202",18};//定义变量并初始化

struct student duck;//定义变量
strcpy(duck.name,"芽芽");        //给数组赋值,使用字符串拷贝函数
strcpy(duck.sex,"男");  
strcpy(duck.number,"202203");
duck.age=17;

strcpy(john.name,"约翰");        //给数组赋值,使用字符串拷贝函数
strcpy(john.sex,"男");  
strcpy(john.number,"202204");
john.age=18;

注意结构体变量的初始化必须按照结构体的成员列表的顺序初始化,否则可能会因为类型不匹配而导致错误,如果在有些信息不知道的情况下,只能初始化部分成员,则可以指定元素初始化。

//定义变量并初始化,在初始化的时候,指定元素初始化
struct student lisa={.name="丽萨",.sex="女",.age=18};
 

 以上就是结构体类型变量的初始化。祝大家新年快乐,万事顺遂!

上一篇:PAT 1026 程序运行时间 (15 分) C++


下一篇:AutoHotkey里prototype(原型)和class的关系