我在高中學習,我做節目只是爲了瞭解如何工會的工作,但該計劃是給我意想不到的效果。意外導致工會(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