以下の比較ステートメントで何が起こるかを理解しようとしています。
int n = 1;
std::puts( ((char*)&n)[0] == 1 ? "-Y-" : "-N-" );
上記のステートメントの出力は次のとおりです-Y-
私の最初の質問は、なぜポインターをchar*
ではなく にキャストするのint*
かということです。
また、char と int を比較する場合、答えは のように思われます-N-
。
と比較すると、char は自動的に int に変換され1
ますか?