c++ union内存

看一个例子:

输出结果:

为什么是这样的呢?

因为A是union,所以在内存中存储的格式为:

高地址 ————> 低地址

12 34 56 78

00010010 00110100 01010110 01111000

s.b 占据低地址的两个字节

s.c 占据高地址的两个字节

所以:

s.b = 5678

s.c = 1234

为了证明,以及看的更清楚,看下面这个程序。

结果:

是不是很明显了。

Original: https://www.cnblogs.com/chenhuan001/p/7516345.html
Author: chenhuan001
Title: c++ union内存

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535294/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【面试攻略】C++面试-边锋

    2020-11-26-边锋 1.说说你以前的架构2.C++11特性,好像问到了这个constexpr https://www.jianshu.com/p/5480c4a35d1d3…

    C++ 2023年5月29日
    064
  • C++ *和&

    概述 在c++中,当申明变量int *p 的时,表示p是一个储存地址的变量;比如int _p=0,表示p指向地址为00000000的地址单元。当申明指针p之后,再用_p表示p指向的…

    C++ 2023年5月29日
    065
  • c++ 智能指针的向下转换 向下塑型 cast

    class A { public: void test() { std::cout << "test" << std::endl; } …

    C++ 2023年5月29日
    074
  • C++STL之双端队列容器

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/huashanqingzhu/p/12832819.ht…

    C++ 2023年5月29日
    068
  • c++报错: No viable overloaded ‘=’ 临时变量与引用参数 const

    对于一个函数的参数为引用,如果想接收临时变量,就必须加上 const。 class A{ public: A(int aa) {} }; void f(A& a) { };…

    C++ 2023年5月29日
    063
  • C++/服务器开发4天实战训练营

    第一天: 1.四种不同的方式来实现add函数 //面向过程 int add1(int a, int b) { return a + b; } //面向对象 class ADD{ p…

    C++ 2023年5月29日
    051
  • Emacs中使用company + irony实现C++代码补全

    下面是主要配置,一些插件可能需要emacs版本 >= 25.1 对于Irony的话,需要在emacs中手动执行 M-x irony-install-server 来安装好ir…

    C++ 2023年5月29日
    047
  • vscode c++ 编译生成后,调试时无法命中断点

    1 //test.cpp 2 #include 3 int g_var = 0; 4 void print_line(char *str) 5 { 6 if (str != NUL…

    C++ 2023年5月29日
    070
  • tuple c++

    A tuple is a C++11 construction and it is built heavily on variadic templates. A tuple is …

    C++ 2023年5月29日
    069
  • C++ 相关库

    C++ 相关库 说明 RapidJSONhttps://github.com/Tencent/rapidjson Original: https://www.cnblogs.com…

    C++ 2023年5月29日
    071
  • C++ extern用法总结(转)

    在C语言中,修饰符extern用在变量或者函数的声明前,用来说明”此变量/函数是在别处定义的,要在此处引用”。 (1)extern修饰变量的声明 如果文件a…

    C++ 2023年5月29日
    054
  • C++ 11 关键字:thread_local(转)

    thread_local 是 C++ 11 新引入的一种存储类型,它会影响变量的存储周期。 C++ 中有 4 种存储周期: 有且只有 thread_local 关键字修饰的变量具有…

    C++ 2023年5月29日
    049
  • 使用VS2015进行C++开发的6个主要原因

    使用VS2015进行C++开发的6个主要原因 使用Visual Studio 2015进行C++开发 在今天的 Build 大会上,进行了”将你的 C++ 代码转移至 …

    C++ 2023年5月29日
    070
  • 对类的理解(c++)

    介绍目录: 1.类成员 1.1 成员函数 1.2 构造函数 1.2.1 对构造函数的理解 1.2.2成员初始化列表 1.2.3必须使用成员初始化列表的几种情况 1.2.4对于拷贝构…

    C++ 2023年5月29日
    072
  • C++源码—_Ptr_base(MSVC 2017)

    1 _Ptr_base _Ptr_base 是智能指针的基类,它包含两个成员变量: 指向目标元素的指针 _Ptr 和 引用计数基类指针 _Rep。 _Ptr 指向的元素类型为 us…

    C++ 2023年5月29日
    074
  • Fixed width integer types (since C++11)

    越界问题非常频繁地困扰着开发人员 CPP常用的类型定义不能体现数据的bit位数,让开发人员非常抓狂,相信很多人都遇到过,当判定一个数值是否越界时候,一定是先去网上查表, 但是数据类…

    C++ 2023年5月29日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球