Следующий код печатает AA
:Неожиданный выход в коде C
#include <stdio.h>
int main()
{
for(int i;i;i--)
printf("A");
return 0;
}
Почему начальное значение переменной i
является 2
, а не какое-то значение мусора?
Является ли срок службы переменной i
статическим или автоматическим?
2 - значение для мусора. – chux
@chux Как вы можете быть уверены? – Codor
Эта программа демонстрирует неопределенное поведение для использования значения объекта с ** автоматической продолжительностью хранения **, в то время как оно неинициализировано. – EOF