Вот мой код, я пытаюсь вызвать переменную, определенную внутри main (), но за пределами текущей области:
#include<iostream>
int main()
{
int asd = 10; //***
while (True)
{
int asd = 100;
asd -= 1; //***is it possible to use the 'asd' defined before while loop
if (asd ==0) break;
}
}
с уважением
Eason
№ int asd = 100;
является маскировка Старый asd
переменная.
То, что вы хотите (я полагаю), это просто присвоить значение 100 asd
что (и я уверен, что вы это знаете) вы могли бы просто сделать, написав asd = 100;
,
Есть, конечно, еще одна проблема: вы хотели бы сделать это до while
цикл — в противном случае вы будете иметь бесконечный цикл, потому что в начале каждой итерации значение asd
будет 100.
Вы скучаете по ;
после asd = 100
, Кстати.
Если вы действительно хотите получить доступ к «внешнему» asd, прежде чем переопределять его, создайте ссылку на него:
int main()
{
int i = 10;
{
int &ri = i;
int i = 12;
std::cout <<"i="<<i<<" ri = "<<ri<<std::endl;
++i;
++ri;
std::cout <<"i="<<i<<" ri = "<<ri<<std::endl;
}
std::cout <<"i = " <<i <<std::endl;
}
будет выводить:
i=12 ri = 10
i=13 ri = 11
i = 11