C++では、値が割り当てられていない変数を印刷するとどうなりますか?次の2つのコードは私に2つの異なる結果を与えます。また、最初のものは各コンパイルで異なる結果をもたらし、2番目のものは毎回0を出力します。どうして?初期化されていない値を読み込み値を割り当てないで変数を印刷する
int main() {
int x = 1;
int y; // No value has been assigned
if (x) {
cout << y; // without using endl
// prints different value each time
}
}
対
int main() {
int x = 1;
int y; // y is not initialized
if (x) {
cout << y << endl; // using endl
// prints 0
}
}
宣言された変数には、ガベージ値である初期値があります。変数を初期化せずに変数を使用しようとすると、UBが発生します。 – Raindrop7