美文网首页
C共用体

C共用体

作者: 王伯卿 | 来源:发表于2018-05-11 23:35 被阅读0次

    定义

    共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。简单的说就是共用体中声明的多个变量使用同一地址,这个地址上只会带有一个值。

    实例

    #include <stdio.h>
    #include <string.h>
    
    // 共用体的声明方式
    /*union union_tag
    {
      member definition;
      member definition;
      ...
      member definition;
    } [one or more union variables]; */
    
    union Data{
      int i;
      float f;
      char str[20];
    }data;
    
    int main(void){
    
      union Data data;//声明一个共用体,需要用union+tag来声明
    
      // 这里用.来访问共用体中的变量
      data.i=10;
      printf("data.i : %d\n",data.i);
    
      data.f=220.5;
      printf("data.f : %f\n",data.f);
    
      strcpy(data.str,"C programing");
      printf("data.str : %s\n",data.str);
    
      return 0;
    }
    /*
    The result is:
    data.i : 10
    data.f : 220.500000
    data.str : C programing
    We can know that the program has output the correct result.
    */
    

    当我们修改其中的代码为:

       data.i = 10;
       data.f = 220.5;
       strcpy( data.str, "C Programming");
    
       printf( "data.i : %d\n", data.i);
       printf( "data.f : %f\n", data.f);
       printf( "data.str : %s\n", data.str);
    

    我们可以发现输出了错误的结果。

    相关文章

      网友评论

          本文标题:C共用体

          本文链接:https://www.haomeiwen.com/subject/dvoqdftx.html