我在高中学习,我做节目只是为了了解如何工会的工作,但该计划是给我意想不到的效果。意外导致工会(C++)
这是程序:
#include <iostream>
using namespace std;
union c{
int l;
int b;
int h;
int vol;
};
int main() {
c box;
box.l=1;
box.b=2;
box.h=3;
box.vol = box.l*box.b*box.h;
cout<<"\n Volume :- "<<box.vol;
return 0;
}
和输出如下:
Volume :- 27
我想明白为什么会这样。
我认为你应该重新考虑工会的工作方式。 – skypjack
为什么?如果有任何错误,请告诉我 – Fullatron
您的期望是错误的。你不能设置一个工会的所有成员,并期望他们保留他们的价值观。为此使用一个结构。一个工会的成员(让我说)是独占的,你可以使用第一个**或**第二个,等等。这将是一个UB,但事实上它给了你一个可预测的结果,因为它们都是'int'。无论如何,正如我所说的,你的期望是错误的,而不是结果。 – skypjack