[2017年整理]结构体变量的初始化

上传人:豆浆 文档编号:914640 上传时间:2017-05-21 格式:DOC 页数:6 大小:331.50KB
返回 下载 相关 举报
[2017年整理]结构体变量的初始化_第1页
第1页 / 共6页
[2017年整理]结构体变量的初始化_第2页
第2页 / 共6页
[2017年整理]结构体变量的初始化_第3页
第3页 / 共6页
[2017年整理]结构体变量的初始化_第4页
第4页 / 共6页
[2017年整理]结构体变量的初始化_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《[2017年整理]结构体变量的初始化》由会员分享,可在线阅读,更多相关《[2017年整理]结构体变量的初始化(6页珍藏版)》请在金锄头文库上搜索。

1、9.1.6 结构体变量的初始化和 C 语言中其它变量一样,在定义结构体变量时可以进行初始化操作,一般形式为(中的内容表示可省略): struct 结构体类型名数据类型名 1 成员名 1; 数据类型名 n 成员名 n;结构体变量 = 初始数据;例如,可以在定义 hero 型变量 wusong 时对其进行初始化:struct heroint number; /排名char sex; /性别char star_name20; /星名char name20; /名称char nickname20; /绰号char position20; /职业char weapon20; /使用武器 wusong=1

2、4,m,”天伤星”,”武松”,”行者”,”步兵头领”,”2 把戒刀”; /定义了结构体变量 wusong 并初始化。定义结构体变量 wusong 但没有初始化时,编译器会给每个成员一个默认值,初始化后就赋予初始化时地赋值,如图 9.4 所示:图 9.4 结构体变量及其初始化注意:对结构体变量进行初始化时,必须按照每个成员的顺序和类型一一对应地赋值,少赋值、多赋值,以及类型不符都可能引起编程错误。9.1.6 结构体变量的引用在定义了结构体变量后,就可以引用这个变量。所谓引用结构体变量就是使用结构体变量或结构体变量的成员进行运算或者其他操作。1. “.”运算符在 C 语言中,“.”也是一个运算符,

3、叫做成员运算符。一般和结构体或共用体变量名称一起使用,用来指定结构体或共用体变量的成员。例如:linchong.nickname;用来指定结构体变量 linchong 的成员 nickname。2. 结构体变量成员的引用C 语言允许引用结构体变量的成员完成某种操作。其一般形式为:结构体变量名.成员名例如,对于上面定义的结构体变量 wusong,可这样引用其成员:wusong.number,wusong.sex; /应用结构体变量wusong.number+1; /对结构体进行运算printf(“%dn”, wusong.number); /输出构体成员的值也可对定义了的结构体变量的成员赋值:

4、sunerniang.number=103;sunerniang.nickname=”母夜叉”;3. 整个结构体变量的引用C 语言允许对两个相同类型的结构体变量之间进行整体赋值。例如,下面将 wusong 的值赋给与其类型相同的变量 zhangsan:zhangsan=wusong;9.1.7 引用结构体变量注意事项在引用结构体变量时,需注意以下几点:l 必须先定义结构体变量,才能对其进行引用。当开发大型程序时,引用未定义的结构体变量而引起的错误可能会时常出现,不过,幸运的是,编译器会发现此错误,程序将无法编译通过。但是,养成良好的编程习惯还是必须的,毕竟调试错误也是一件很麻烦的事情。l 如果

5、一个结构体变量的成员又是一个结构类型,引用时要用成员运算符逐级遍历到最低层的成员。例如,下面对前面定义的 hero 类型变量 wusong 的成员 death_day的结构体成员进行引用: wusong.death_day.month wusong.death_day.daywusong.death_day.year 其中,wusong 为第一级的结构体变量名,death_day 既为 wusong的成员,又为第二级结构体变量名,month,day,year 为 death_day的成员。l 结构体变量成员可以像普通变量一样参与各种运算或其他操作。例如:songerniang.sex=w; /

6、对结构体变量成员进行赋值操作songerniang.number+; /对结构体变量成员进行自增运算sunerniang.numberwusong.number; /比较两个结构体变量成员l 可以引用结构体变量地址,也可以引用结构体变量成员的地址。例如,下面都是合法的语句:/以十六进制数的形式输出结构体变量 wusong 的地址printf(“%x”,&wusong);/以十六进制数的形式输出结构体变量 wusong 成员 number 的地址printf(“%x”,&wusong.number);/从键盘输入字符给 sunerniang 变量的成员 sex 赋值scanf(“%c”,&sun

7、erniang.sex);l 不能对结构体变量整体进行诸如输入输出的操作。例如,下面的语句是非法的:scantf(“%d%c%s%s%s%s%s”,&sunerniang); l 结构体成员名可以与程序中的变量名相同,但两者是完全不同的两个变量。例如,下面的程序清单说明了局部变量和结构体中的成员变量可以同名,但不代表同一个变量:/声明结构体类型struct heroint number; /排名char sex; /性别char star_name20; /星名char name20; /名称char nickname20; /绰号char position20; /职业char weapon20; /使用武器;void main()int number=100; /局部变量struct hero sunerniang;sunerniang.number=103; /结构体成员此程序中两个同名的变量如图 9.5 所示:图 9.5 同名的不同变量

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号