Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
#include <iostream>
int main() {
int level = 1;
{
int level = 2;
std::cout << level << ' ';
}
std::cout << level << '\n';
}2 1
- Ждать
2 2:int level = 2;объявляет новую переменную, которая исчезает на закрывающей скобке, а внешняяlevelне меняется и хранит1. - Ждать ошибку компиляции: дважды объявить имя нельзя в одном блоке, а во вложенном блоке можно — новая переменная скроет внешнюю.
- Что выведет программа, если во вложенном блоке вместо
int level = 2;написатьlevel = 2;? - Как флаг предупреждений компилятора
-Wshadowпомогает находить скрытые переменные?