- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
共用体 C++语言中,允许不同的数据类型使用同一存储区域,即同一存储区域由不同类型的变量共同表示。这种数据类型就是共用体。 union 共用体名 { 成员表列; } 变量表列; union data { int i; char ch; float f; } a, b, c; union data a, b, c; 这几个成员在共用体变量中存放在同一地址,相互覆盖,其长度为最长的成员的长度。 共用体变量的引用 不能整体引用共用体变量,只能引用变量中的成员。 a.i 表示为整型 a.ch 表示为字符型 a.f 表示为符点型 共用体变量的特点 1、共用体的空间在某一时刻只有一个成员在起作用。 2、共用体变量中的成员是最后一次放入的成员。 3、共用体变量不能在定义时赋初值。 4、共用体变量不能作为函数的参数或函数值,但可使用指向共用体的指针变量。 5、共用体可以作为结构的成员,结构体也可以作为共用体的成员。 union un { int i; double y; }; struct st { char a[10]; union un b; }; coutsizeof(struct st)endl; 18 (输出结果24) union un { short int a; char c[2]; } w; w.c[0]=‘A’; w.c[1]=‘a’; coutoctw.aendl; 低字节低地址 高字节高地址 ‘a’ ‘A’ w.c[1] w.c[0] 2000H 2001H 输出:60501 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 a 65 ? 56 ? 6 5 2000H 2001H void main(void) { union EXAMPLE { struct { int x, int y;} in; int a,b; }e; e.a=1; e.b=2; e.in.x=e.a*e.a; e.in.y=e.b+e.b; coute.in.x‘\t’e.in.yendl; } in x y a b b 1 2 4 8 输出:4 8 单击此处编辑母版标题样式 单击此处编辑母版副标题样式 * 引用 对变量起另外一个名字 (外号),这个名字称为该变量的引用。 类型 引用变量名 = 原变量名; 其中原变量名必须是一个已定义过的变量。如: int max ; int refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 max refmax 5 10 int max ; int refmax=max; max=5 ; 20 refmax=10; refmax=max+refmax; max与refmax同一地址 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化。 2、对引用的操作就是对被引用的变量的操作。 int refmax; int refmax=max; 错误,没有具体的引用对象 max是已定义过的变量 3、 引用类型变量的初始化值不能是一个常数。 如:int ref1 = 5; // 是错误的。 int ref=i; 4、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 int a, *p; int m=a; a p m 10 p=m; *p=10; m 是变量的引用 是变量的地址 当a的前面有类型符时(如int a),它必然是对引用的声明;如果前面无类型符(如couta),则是取变量的地址。 指针与引用的区别: 1、指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量。 2、引用必须初始化,而一旦被初始化后不得再作为其它变量的别名。 以下的声明是非法的 1、企图建立数组的引用 int a[9]; 2、企图建立指向引用的指针 int *p; 3、企图建立引用的引用 int px; int m=10; int y=10; int z; float t=m; int x=m; 引用与函数 引用的用途主要是用来作函数的参数或函数的返回值。 引用作为函数的形参,实际上是在被调函数中对实参进行操作。 void change(int x, int y)//x,y是实参a,b的别名 { int t; t=x; x=y;
原创力文档


文档评论(0)