У меня есть вопрос в интервью, для которого мне пришлось выяснить результат следующего кода. Я попытался, но это было неправильно. Пожалуйста, объясните следующий код.Почему цикл while выполняется более одного раза?
#include<stdio.h>
int main()
{
int x=0,a;
while(x++ < 5)
{
a=x;
printf("a = %d \n",a);
static int x=3;
printf("x = %d \n",x);
x+=2;
}
return 0;
}
Выход:
a = 1
x = 3
a = 2
x = 5
a = 3
x = 7
a = 4
x = 9
a = 5
x = 11
Может кто-нибудь, пожалуйста, объясните, что происходит здесь?
Если вы переименовали статическую внутреннюю переменную 'x' в последние три строки вашего тела цикла, вы должны увидеть, что происходит более четко. –