int main() {
int j = 0;
int i = 0;
for (j = 0; j < 5; j++) {
printf("Iteration %d : %d ", j + 1, i);
int i;
printf("%d", i);
i = 5;
printf("\n");
}
}
Приведенный выше код генерирует следующий вывод:
Iteration 1 : 0 0
Iteration 2 : 0 5
Iteration 3 : 0 5
Iteration 4 : 0 5
Iteration 5 : 0 5
Я не могу понять, почему второе значение printf
на итерациях 2,3,4,5 равно 5.
Насколько я понимаю, первое значение равно 0 на каждой итерации, заключается в том, что область видимости i
в цикле for
является локальной и уничтожается, как только мы переходим в новую итерацию, поскольку i
был объявлен в цикле for
.
Но я не могу понять, почему это значение становится 5 на втором printf
.
-Wshadow
. - person Iharob Al Asimi   schedule 23.02.2017gcc -Wall -Wextra -g
). Затем используйте отладчик (gdb
) для пошагового выполнения вашей программы. - person Basile Starynkevitch   schedule 23.02.2017void main
недействителен C. - person David Conrad   schedule 24.02.2017