美文网首页
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共用体

    定义 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是...

  • C++的共用体使用场景

    C++使用union 描述 union是C语言中一种声明共用体的数据类型,使用union声明的共用体只会占用共用体...

  • NDK开发—结构体、共用体与C++基础(三)

    目录 结构体、共用体与C++基础11、结构体字节对齐2、共用体3、C++ 输出函数符号兼容引用字符串C字符串字符串...

  • iOS共用体

    iOS共用体 一、何为共用体 在C语言中有union联合体/共用体。 union中可以定义多个成员,union的大...

  • C语言共用体

    共用体 共用体的格式:union 共用体名称{数据类型 属性名称;数据类型 属性名称;... ...}共用体定义的...

  • C语言----共用体

    共用体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。可以定义一个带有多成员的共用体,但是任何时候只...

  • C-共用体

    共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。 您可以定义一个带有多成员的共用体,但是任何...

  • C结构体、共用体、枚举

    一、结构体 (1)类型声明 注意,这一步操作只是声明了一个类型struct student,不占据栈空间或堆空间。...

  • 三、C语言基础

    A、struct 结构体 结构体:里面所有的成员,默认都是public B、pragma C、union 共用体/...

  • 0基础学习C语言第十章:共用体

    C共用体 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,...

网友评论

      本文标题:C共用体

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