わかりましたので、これをやってみました
int b;
char x = 'a';
//Case 1
b = static_cast<int>(x);
std::cout<<"B is : "<<b<<std::endl;
//Case 2
b = *(int*)&x;
std::cout<<"B is changed as :: "<< b <<std::endl;
x
ケース 2 では、 の最初のバイトが整数であると考えるように再解釈され、ビット パターンがコピーされb
てガベージが生成され、ケース 1 では値が からchar
に変換されることがわかりましたint
。
それとは別に、これら2つの間に違いはありますか?