电话:0731-83595998
导航

2011年软件水平考试程序员之程序设计知识点25

来源: 2017-10-20 13:54

  7.2 共用型和共用型变量

  1.共用型

  在某些特殊应用中,要求某数据对象在程序执行的不同时期能存储不同类型的值。C语言的共用型能满足这个要求。共用型的成员从同一地址开始存储。但任一时刻只存储其中一个成员,由最近放入的内容决定该区域究竟是哪一个成员的值。分配给共用型的存储区域大小,要求至少能存储其中最大一种成员。定义共用型的一般形式为

  union 共用型名 {

  数据类型1 成员1名;

  数据类型2 成员2名;

  ……

  数据类型n 成员n名;

  };

  例如,下面定义的共用型(union udata) 能存储整型,或字符型,或浮点型的数据:

  union udata {

  int ival;

  char chval;

  float fval;

  };

  2.共用型变目的定义

  与结构变量的定义方法一样,共用型变量的定义方法有以下几种:

  (1) 先定义共用型,然后定义共用型变量、共用型数组、共用型指针等。

  (2) 定义共用型同时定义共用型变量、共用型数组、共用型指针等。

  (3) 定义无名共用型同时定义共用型变量、共用型数组、共用型指针等。

  3.共用型变目初始化

  共用型变量定义时,也可初始化,但只能对共用型中的第一个成员初始化。

  4.引用共用型变目的成员

  引用共用型变量成员的方法与引用结构变量成员的方法相同。共用型也可出现在结构和数组中,共用型也可包含有结构和数组。引用结构中的共用型或共用型中的结构的书写形式与引用嵌套结构成员的书写形式一样。例如,以下代码

  Struct {

  char name[30]; /* 标识符 */

  int uflag; /* 存于共用型成员中的值的类型 */

  union /* 存储变量值 */

  { int ival; /* 当变量为整型时 */

  char chval /* 当变量为字符型时 */

  float fval; /*当变量为浮点型时 */

  } uval;

  } symTbl[1000]; /* 变量表 */

  定义了一个结构数组symTbl。用symTbl[50].uval.fval引用结构数组symTbl中的第50个结构的共用型成员uval的fval(视其中的共用型为浮点型数据)。

  函数的形式参数不能是共用型类型,函数的结果也不能是共用型类型。但指向共用型的指针可以作为函数形式参数,函数也可以返回指向共用型的指针。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端