C++ union用法

在C++中,union是一种特殊的数据类型,可以在同一个内存位置存储不同的数据类型。它的用法如下:

  1. 声明union类型:使用关键字union加上union名称来声明一个union类型。

```c++

union UnionName {

dataType1 member1;

dataType2 member2;

// ...

};

```

  1. 定义union变量:使用声明的union类型来定义union变量。

```c++

UnionName variableName;

```

  1. 使用union变量:使用点操作符或箭头操作符来访问union变量的成员。

```c++

variableName.member1 = value1;

variableName.member2 = value2;

// ...

```

  1. 注意事项:
  • union的所有成员共享相同的内存位置,只有一个成员可以被赋值。

  • union的大小是根据最大成员的大小来决定的,所以应该避免在union中存储过大的数据类型。

  • 在同一时间只能使用一个成员,否则将引发未定义的行为。

以下是一个使用union的示例:

```c++

#include <iostream>

using namespace std;

union Number {

int i;

float f;

};

int main() {

Number num;

num.i = 10;

cout << "Integer: " << num.i << endl;

num.f = 3.14;

cout << "Float: " << num.f << endl;

cout << "Integer after Float: " << num.i << endl; // 可能产生不确定的结果

return 0;

}

```

输出结果:

```

Integer: 10

Float: 3.14

Integer after Float: 1091567616

```

注意最后输出的整数值可能并不是预期的3.14的整数表示,这是因为在赋值给float成员后没有重新赋值整数成员,导致整数成员保留了原始的二进制表示。

相关推荐
dialect_1 小时前
KMP算法
开发语言·c++·算法
总要学点什么2 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
开开心心_Every3 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c3 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
吴卫斌3 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
超级架构师4 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
叼烟扛炮5 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
LMT流氓兔6 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真6 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放6 小时前
Python基础语法练习题(75)
开发语言·python·学习