精华内容
下载资源
问答
  • 共用体类型数据的特点 转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/24/3846541.html
    共用体类型数据的特点

    转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/24/3846541.html

    展开全文
  • C++共用体类型数据的特点

    千次阅读 2013-04-10 11:05:41
    使用共用体变量的目的是希望用同一个内存段存放几种不同类型数据。但请注意: 在每一瞬时只能存放其中一种,而不是同时存放几种。能够访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原有的...
    1. 使用共用体变量的目的是希望用同一个内存段存放几种不同类型的数据。但请注意: 在每一瞬时只能存放其中一种,而不是同时存放几种。
    2. 能够访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原有的成员就失去作用。
    3. 共用体变量的地址和它的各成员的地址都是同一地址。
    4. 不能对共用体变量名赋值;不能企图引用变量名来得到一个值;不能在定义共用体变量时对它初始化;不能用共用体变量名作为函数参数。

    例7.7 设有若干个人员的数据,其中有学生和教师。学生的数据中包括: 姓名、号码、性别、职业、年级。教师的数据包括: 姓名、号码、性别、职业、职务。可以看出,学生和教师所包含的数据是不同的。

    现要求把它们放在同一表格中,如果job项为s(学生),则第5项为grade(年级)。即Li是3年级的。如果job项是t(教师),则第5项为position(职务)。Wang是prof(教授)。显然对第5项可以用共用体来处理(将class和position放在同一段内存中)。要求输入人员的数据,然后再输出。为简化起见,只设两个人(一个学生、一个教师)。
    程序如下:
    #include <iostream>
    #include <string>
    #include <iomanip>//因为在输出流中使用了控制符setw
    using namespace std;
    struct
    {
       int num;
       char name[10];
       char sex;
       char job;
       union P//声明共用体类型
       {
          int grade;//年级
          char position[10];//职务
       }category;//成员category 为共用体变量
    }person[2];//定义共用体数组person,含两个元素
    int main( )
    {
       int i;
       for(i=0;i<2;i++)//输入两个学生的数据
       {
          cin>>person[i].num>>person[i].name
          >>person[i].sex>>person[i].job;
          if(person[i].job==′s′)
             cin>>person[i].category.grade;//若是学生则输入年级
          else
             if (person[i].job==′t′)
                cin>>person[i].category.position;//若是教师则输入职务
       }
       cout<<endl<<″No. Name sex job grade/position″<<endl;

       for(i=0;i<2;i++)
       {
          if (person[i].job==′s′) cout<<person[i].num<<setw(6)
          <<person[i].name<<″ ″<<person[i].sex <<″ ″
          <<person[i].job<<setw(10)<<person[i].category.grade<<endl;
          else cout<<person[i].num<<setw(6)<<person[i].name
          <<″ ″<<person[i].sex <<″ ″<<person[i].job
          <<setw(10)<<person[i].category.position<<endl;
       }
       return 0;
    }
    运行情况如下:
    101 Li fs 3↙ (注意在输入的字母f和s之间无空格)
    102 Wang mt prof↙ (注意在输入的字母m和t之间无空格)
    No. Name sex job grade/position 101 Li f s 3 102 Wang m t prof
    为了使输出结果上下对齐,在cout语句中用了setw控制符和插入空格。往往需要试验多次。
    展开全文
  • 数据类型共用体

    2016-10-22 12:37:03
    共用体共用体是构造数据类型的一种共用体也常被称为联合体共用体的实质共用体是单个存储单位上的元素集合注意:元素都在一个存储单位上,这个存储单位的大小是最大数据类型的大小共用体的作用我们用共用体并不是内存...

    共用体

    共用体是构造数据类型的一种

    共用体也常被称为联合体


    共用体的实质

    共用体是单个存储单位上的元素集合

    注意:元素都在一个存储单位上,这个存储单位的大小是最大数据类型的大小

    共用体的作用

    我们用共用体并不是内存空间不够用

    用共用体时,主要利用”元素都存储到一个存储单位上”这一特性


    共用体的组成

    • 共用体是依靠不同的数据类型的组合创建起来的,数组的元素可以是之下的任何几种的组合

      1. 整型
      2. 浮点型
      3. 字符型
      4. 指针型
      5. 枚举型
      6. 数组
      7. 结构体
      8. 共用体

    共用体的声明

    /*共用体的声明不分配内存空间*/
    union hello{//共用体类型名为 struct hello
      int hello;//共用体成员名可以与共用体类型名中的第二个标识符相同
      char c[100];
      struct hello * p;//共用体可以包含该结构体指针,但是不可以包含该共用体 ,一般不包括指针,嗯嗯,我还没见过,就是酱紫
    };

    共用体变量的定义

    /*结构体的定义分配内存空间*/
    union hello hello;

    共用体使用示例

    /*检查大小端序*/
    #include <stdio.h>
    union hiahia{
        int i;
        char c;
    } b;
    int main(int argc, const char *argv[])
    {
        b.i = 1;
        if(b.c){
            printf("this machine follows the little endian \n");
        }else{
            printf("this machine follows the big endian \n");
        }
        return 0;
    }
    /*另外,封装两个检查大小端的函数,随变找一个用*/
    /*
    *返回值:大端序返回1,小端序返回0
    */
    static int IsBigEndian(void){
        union hiahia{
            int i;
            char c;
        } b;
        b.i = 1;
        return !b.c;
    }
    /*
    *返回值:大端序返回1,小端序返回0
    */
    static int IsBigEndian(void){
        int i = 1;
        return !*(char*)&i;
    }
    展开全文
  • 共用体类型

    2021-02-05 08:12:35
    共用体类型 介绍: 与结构体一样,共用体也是一种派生数据类型。 共用体的成员共享一个存储空间。避免了不再使用的变量仍占据内存空间的浪费情况。 共用体的成员可以是任意数据类型,存储一个共用体的字节数等于其...

    共用体类型

    介绍:

    与结构体一样,共用体也是一种派生数据类型。

    共用体的成员共享一个存储空间。避免了不再使用的变量仍占据内存空间的浪费情况。

    共用体的成员可以是任意数据类型,存储一个共用体的字节数等于其成员数据类型中占有字节数最大的数据类型所占字节数。

    共用体每次只允许访问一个成员变量,一种数据类型。

    共用体的声明:

    和结构体相同,只是把struct换成union

    注意

    1.和结构体一样,不能比较两个共用体的大小。

    2.访问共用体成员的方式和结构体相同。

    展开全文
  • 文章目录自定义数据类型——共用体类型、枚举...共用体类型名与union一起作为类型名称,成员列表是该类型数据 元素的集合。一对大括号{}是成员列表边界符,后面必须用分号 (;)结束。 union A { int m,n; //整型
  • 共用体是一种数据格式,它能够存储不同的数据类型,但在同一时间只能存储其中的一种类型共用体的用途之一是,当数据使用两种或更多种格式,但不会同时使用这些格式时,可以节省空间。 union 共用体名 {  成员...
  • 1、声明共用体并定义共用体变量 #include <stdio.h> void main(){ // 声明共用体并定义共用体变量 union Data{ int age; char sex; }p1; // 共用体变量引用同一块内存地址,p1.age和p1.sex内存起始地址...
  • 共用体类型 有时想用同一段内存单元存放不同类型的变量。这种使几个不同的变量共享同一段内存的结构,称为“共用体”类型结构(也称为“联合”)。 定义 union 共同体名{成员表列}变量表列; 定义共用体类型: ...
  • C语言_共用体类型

    2020-07-07 14:50:48
    1.什么是共用体类型 使用同一段内存单元存放不同类型的变量称为共用体 union 共用体 { 成员列表 }变量表列; 三种方式定义 union Data { int i; char ch; float f; }a,b,c; union Data { int i; char ...
  • 共用体类型的特性

    2021-05-22 17:19:37
    (1) 共用体类型的容量 共用体类型可以有多个成员变量,但是,这些成员变量存储在同一个内存空间。所以,共用体类型变量的容量,是由容量最大的成员变量决定。例如: 程序运行结果如下: 可以看到,union ...
  • C语言数据类型共用体

    千次阅读 2016-04-07 17:49:21
    1.定义: 在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存...2.共用体类型的定义 union 共用体类型标示符 { 类型说明符 变量名; }; 例如: union data { int i; char ch
  • C语言共用体类型(union)

    千次阅读 2017-06-20 22:33:06
    共用体类型的定义:用同一段内存单元存放不同类型的指针变量。 使用类似覆盖技术,后一个数据覆盖了前面的数据,使几个不同的变量共享同一段同一段内存的结构。 定义共用体类型变量的一般形式为: union ...
  • 前期回顾 ... 共用体类型 1. 什么是共用体类型   用同一段内存单元存放不同类型的变量。而这种使几个不同的变量共享同一段内存的结构,称为 “共用体” 类型的结构。 2. 形式 union Data { i...
  • C++共用体类型union 共用体是一种构造数据类型,它是将不同类型的变量存放在同一内存区域内。共同体也称为联。各成员的内存地址是相同的。 结构体变量的各成员占用连续的不同存储空间,而共用体变量的各成员占用同...
  • C语言(共用体类型

    千次阅读 2017-12-27 07:09:52
    定义 用同一段内存单元存放不同类型的变量; 使几个不同的变量共享同一段内存的结构,称为 “共用体” ...定义共用体类型变量的一般形式 union 共用体名 { 成员表列 }变量表列; union Data { int i; char ch; ...
  • 共用体(union)是一种数据格式,它是能够存储不同的数据类型,但只能同时存储其中的一种类型。 特点: 1.成员共用内存 共用体中使用覆盖技术让数据成员之间相互覆盖,以实现不同数据成员共用同一段内存。 union ...
  • union 联合数据类型共用体

    千次阅读 2017-12-30 21:59:33
    union共用体,联合体,联合数据类型,和struct类似的一种数组类型,可以存放不同类型数据,但是和struct又有很大的区别。union里面的成员变量公用一个内存首地址地址。各成员的解析按照你打印的方式或者读取的方式...
  • 近日在学习stm32的过程中遇到一些问题,特重新学习了一下C语言关于枚举、结构体、共用体类型的用法,现总结如下>>> 目录·C枚举类型基本定义在stm32中的应用·C结构体类型基本定义初始化作为函数参数在stm...
  • 文章目录目录前文列表共用体定义共用体访问共用体成员 前文列表 《程序编译流程与 GCC 编译器》 《C 语言编程 — 基本语法》 《C 语言编程 — 基本数据类型》 《C 语言编程 — 变量与常量》 《C 语言编程 — 运算符...
  • 先定义共用体类型再定义共用体类型的变量 其定义的一般形式为 union 共用体名 { 数据类型1 共用体成员名1; 数据类型2 共用体成员名2; 数据类型n 共用体成员名n; } union 共用体名 变量名列表 2.共用体变量的定义 第...
  • 使用共用体存储各类型数据到EEPROM

    千次阅读 2014-05-23 10:53:12
    你可能发现了,使用Arduino...如果要存储字节以外的数据类型,又需要怎么做呢? 一个float类型数据,需要占用4个字节的存储空间。因此我们可以把一个float拆分为4个字节,然后逐字节的写入EEPROM,来
  • 关于共用体所占的内存空间的问题

    千次阅读 2020-05-16 20:22:26
    共用体`共用体(联合)`共用体类型变量的定义共用体变量的引用方式共用体类型数据的特点【例1】分析程序运行结果【实训内容3】输入并运行以下程序,从输出的结果体会“共用”的含义 共用体(联合) 是几个不同类型的...
  • 共用体

    2020-03-08 11:32:37
    共用体类型与结构体本质上的不同: ①结构体的各成员有各自存储单元,一个结构体类型变量占用的存储单元长度与各成员所占存储单元长度有关。 ②共用体类型的各成员所占存储单元的1长度是各成员所占用存储单元最长的...
  • 共用体的定义和使用

    千次阅读 2020-07-10 21:33:13
    在 C 语言中,允许几种不同类型的变量存放到同一段内存单元中,也就是使用覆盖技术,几个变量互 相覆盖。这种几个不同的变量共同占用一段内存的结构,被称为共用体类型结构,简称共用体。...共用体类型数据具有以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,516
精华内容 13,806
关键字:

共用体类型数据