更新时间:2020-11-30 来源:黑马程序员 浏览量:
结构体变量存储了一组不同类型的数据,为结构体变量初始化的过程,其实就是为结构体中各个成员初始化的过程。根据结构体变量定义方式的不同,可以将结构体变量初始化方式分为两种。
1、在定义结构体类型时定义结构体变量,同时对结构体变量初始化。
例如,定义一个struct Person结构体类型,该结构体类型的成员项包括编号、姓名、性别三项,在定义struct Person结构体类型时,定义变量p,并对p进行初始化,示例代码如下:
struct Person { int ID; char name[10]; char sex; }p={0001,"Zhang San",'M' };
上述代码在定义结构体类型struct Person的同时定义了结构体变量p,并对p中的成员进行了初始化。
2、先定义结构体类型,之后定义结构体变量并对结构体变量初始化。
以struct Person结构体类型为例,先定义struct Person结构体类型,然后定义struct Person类型的变量p,并对其进行初始化,示例代码如下:
struct Person { int ID; char name[10]; char sex; }; struct Person p={0001,"Zhang San",'M' };
在上述代码中,首先定义了一个结构体类型struct Person,然后在定义结构体变量p时对其中的成员进行初始化。
需要注意的是,编译器在初始化结构体变量时,按照成员声明顺序从前往后匹配,而不是按照数据类型自动匹配。在初始化成员变量时,如果没有按顺序为成员变量赋值,或者只给一部分成员变量赋值,往往会匹配错误。例如,给struct Person结构体类型的变量p赋值时,只给其中的name与sex成员变量赋值,示例代码如下:
struct Person p={"Zhang San",'M' };
上述代码在定义变量p时,只给name和sex赋值,但在编译时,编译器会从前往后将字符串“Zhang San”匹配给成员变量ID,字符‘M’匹配给成员变量name,而成员变量sex没有值。这样当变量p中的成员参与运算时就会发生错误。
猜你喜欢
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19