私は、関数内のローカル変数が別の関数内で同じ名前のローカル変数に渡されているC++の学習で問題が発生しました。 ()。ローカル変数が渡されました(C++)
これが実行され、
#include <iostream>
using namespace std;
void next();
void again();
int main()
{
int a = 2;
cout << a << endl;
next();
again();
return 0;
}
void next()
{
int a = 5;
cout << a << endl;
}
void again()
{
int a;
cout << a << endl;
}
それは出力:
2
5
5
私は '' 再びそこに宣言し、そしてまだそれはそうしているので、再び()がnullまたは0と言うだろうと予想next()に 'a'が代入された値を使用します。
なぜ、 'a'がもう一度again()で宣言された場合、next()はローカル変数 'a'の値をagain()に渡しますか?
何も渡されませんでした。 'again()'の 'a'は初期化されていませんでした。 – songyuanyao
合意されているので、 'a'の値は未定義の振る舞いです。 – drescherjm