C 共用体

 

  在接下来的时间里面,我们准备为大家介绍"共用体"。


  (1)共用体:在同一段内存空间中存放多种不同类的变量,例如可把整型变量、字符型变量、浮点

         型变量等放在同一个内存地址开始的内存空间中。

  (2)共用体内存空间的大小,是根据所存放的变量中,长度最大的那个变量去分配内存空间

     而不是所有变量大小之和

 

 

 

  共用体定义的语法格式1

 

  union 共用体名字

  {

    成员1;

    ...

    成员n;

  }变量1,变量2,..变量n;

 

  语法格式分析:

  (1)以关键字union开始。

  (2)共用体名字,按照变量名命名规则定义即可。

  (3)一对大括号。

  (4)大括号中可以定义共用体中要存放的成员,而成员的定义就是变量的定义,成员数量不限。

  (5)大括号后所定义的就是共用体变量,多个变量之间以逗号分隔。

 

 

 

  共用体定义的语法格式2

 

  union 共用体名字

   {

    成员1;

    ...

    成员n;

  };

 

  union  共用体名字 变量1,变量2,..变量n;

 

  语法格式分析:

  (1)以关键字union开始。

  (2)共用体名字,按照变量名命名规则定义即可。

  (3)一对大括号。

  (4)分号,说明共用体定义结束。

 

  (5)以union开始,后面接着写上已经定义的共用体名字,然后,再写上要定义的共用体变量,

     每个变量之间以逗号分隔。

 

 

 

   例子:

        union UN  //定义了共用体UN

        {

         int x;    

         char y;

         float z;        

        }; 

 

        union UN a,b,c;  

 

 

 

  接下来,我们看看共用体变量的引用语法格式

 

  共用体变量名.共用体中的成员名

 

  语法格式分析:

  (1)已经定义的共用体变量名。

  (2)一个点号运算符,格式要求不能省略。

  (3)共用体中的成员名字。

 

  例子:

    //使用上面例子中定义的UN共用体所定义的变量

     a.x;//通过共用体变量a调用了成员x。

 

 

 

 

  接下来,我们看看共用体的特性

 

  

  (1)共用体虽然可以存放多个成员,但是,每一次只可以有一个成员起作用。

  (2)共用体变量调用成员时,只有最后调用的成员起作用。

  

  例子:

    //使用上面例子中定义的UN共用体所定义的变量

     a.x = 1;//通过共用体变量a调用了成员x,并赋值为1。

     a.y = 'u';//通过共用体变量a调用了成员y,并赋值为字符'u'。

     a.z = 1.5;//通过共用体变量a调用了成员z,并赋值为1.5。

 

  例子分析:

     在上同的3行代码中,最后是通过共用体变量a调用了成员z,并赋值了1.5,因为,它是最后

  调用的,所以,只有a.z起作用,其它两行代码已经没有意义,因为,第一个特性说明了,每一次

  只可以有一个成员起作用。

 

 

  (3)共用体变量的内存地址与共用体中的所有成员的内存地址是一样的。

 

     例如:使用上面例子中定义的UN共用体与它所定义的变量a为例,&a 与 &a.x、&a.y、

        &a.z 的内存地址是一样的。因为,它们都是在同一个内存地址开始的内存空间中。

 

  (4)不能对共用体变量名赋值或引用。

 

     例如:使用上面例子中定义的UN共用体与它所定义的变量a为例,

         a = 1; //错误,不能对共用体a赋值。

         int n = a;//错误,不能引用共体体a。

 

  (5)不能在共用体定义时进行初始化。

 

   例子:

        union UN  //定义了共用体UN

        {

         int x;    

         char y;

         float z;        

        } a = { 1,'d',1.5 }; //错误,不能在定义时初始化。

 

  (6)不能把共用体作为函数参数,也不能返回共用体变量,但可以使用共用体变量指针。

 

  (7)共用体可以定义在结构体中,而结构体也可以定义在共用体中。

       例子:

       struct

       {

          int x;

          union      

          {

             char y;

             float z;

          }test;  //结构体中定义了共用体变量test

       };

 

  (8)可以定义共用体数组,而数组也可以作为共用体的成员。

       例子:

       union UN  //定义了共用体UN

       {

         int x;    

         char y;

         float z[3];  //定义数组成员z        

       }; 

 

       union UN a[2];  //定义了共用体数组a

    

 

 

   非常好,现在,我们已经掌握了C中的“共用体”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

      不要停留在理论规则上面,快动起来吧!

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练