上一篇文章讲了结构体的定义以及结构体类型变量的定义,这一篇我们来讲一下结构体变量的初始化。结构体变量的初始化既可以在定义变量的时候初始化,也可以定义完变量后,在单独给变量的成员变量赋值。
先定义一个结构体
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};
以上就是结构体类型变量的初始化。祝大家新年快乐,万事顺遂!