私はc ++を使用してユニオンに取り組んでいます。以下はコードスニペットです:
#include<iostream>
using namespace std;
typedef union myunion
{
double PI;
int B;
}MYUNION;
int main()
{
MYUNION numbers;
numbers.PI = 3;
numbers.B = 50;
cout <<" numbers.PI :" << numbers.PI << endl;
if(numbers.PI == 3.0)
{
cout <<"True";
if(numbers.B == 50)
{
cout <<" numbers.PI :" << numbers.PI << endl;
cout <<" numbers.B :" << numbers.B << endl;
}
}
return 0;
}
出力は次のとおりです。
numbers.PI :3
numbers.PI の値も既に 3 に設定されており、最初の "if" 条件は false になります。この行動の理由は何ですか?