Как вызвать переменную, определенную внутри main (), но во внешней области видимости

Вот мой код, я пытаюсь вызвать переменную, определенную внутри 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

0

Решение

int asd = 100; является маскировка Старый asd переменная.

То, что вы хотите (я полагаю), это просто присвоить значение 100 asdчто (и я уверен, что вы это знаете) вы могли бы просто сделать, написав asd = 100;,
Есть, конечно, еще одна проблема: вы хотели бы сделать это до while цикл — в противном случае вы будете иметь бесконечный цикл, потому что в начале каждой итерации значение asd будет 100.

Вы скучаете по ; после asd = 100, Кстати.

3

Другие решения

Если вы действительно хотите получить доступ к «внешнему» 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
0

По вопросам рекламы [email protected]