-4
int x;
x=x+30;
cout << x;

出力は 33 になりますが、なぜそうなのですか? x を 3 とさえ宣言していません。ありがとう!

4

2 に答える 2

4

初期化されていない変数の使用は未定義の動作です。信頼できない一連の実装の癖により、33 を得ました。このプログラムは、価値を生み出すことも、コンパイルに失敗することも、暗殺者を雇ってあなたを刺すことも自由です。

于 2013-09-22T06:47:29.317 に答える
0

C++ では、変数にはデフォルトで変数のサイズと同じスペース (メモリ割り当て) が与えられますが、デフォルトでは値は与えられません。

于 2013-09-22T06:48:13.150 に答える