ブール値を一緒に追加しようとしました。
bool i = 0, j = 0, k = 0;
cout << sizeof(i + j + k) << endl;
結果は 4 です。これは、結果が「int」値に変換されることを意味します。
質問したいのですが、これは C/C++ 標準操作ですか? オーバーフローした場合、コンパイラは一時値がより大きな型に変換されることを常に保証しますか? ありがとう!
回答ありがとうございます。フォローアップの質問を 1 つ: たとえば、
unsigned short i = 65535, j = 65535;
cout << sizeof(i + j) << endl;
結果は 4 です。なぜ 'int' に昇格したのですか?