私は高校で勉強しましたが、私は組合の働きを理解するだけのプログラムを作っていましたが、予期しない結果をもたらしました。ユニオンでの予期しない結果(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
あなたの期待は間違っています。組合のメンバーを*すべて*設定することはできません。このために構造体を使用します。組合のメンバーは排他的で、最初のものは**、もう2つは**を使用します。それはUBでしょうが、実際には、それらがすべてintであるという予測可能な結果をもたらします。とにかく、私が言ったように、あなたの期待は間違っていて、結果ではありません。 – skypjack