Я объявил переменную за пределами оператора case. Но если я напечатаю его значение в случае, он говорит 0. Может ли кто-нибудь объяснить?Объявление переменных вне случая
Путаница почему декларация часть берется (ИНТ б, еще, ошибка компиляции для неопределенной переменной) и почему не инициализации?
Я не смог получить ответ с вопросами отмеченные дублирует, следовательно, пост.
main()
{
int a=1;
switch(a)
{
int b = 6;
case 1:
{
printf("b is %d\n",b);
}
break;
default:printf("b is %d in default\n",a);
break;
}
return 0;
}
Это неопределенное поведение –
[Объяснить вывод этой программы на C] (http://stackoverflow.com/questions/17749100/explain-output-of-this-c-program) –
Почему бы вам не захотеть это..? – Sean