Я столкнулся с проблемой при изучении 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
Я ожидал, что снова() сказал бы нулевой или 0, так как «а» объявляется снова там, и все же, кажется, для использования значения, которое 'a' было назначено в next().
Почему next() передает значение локальной переменной 'a' снова(), если 'a' объявляется в другое время снова()?
Ничего не прошло. 'a' в' again() 'не был инициализирован, любое значение возможно. – songyuanyao
Согласен, что значение 'a' in - неопределенное поведение. – drescherjm