Я узнал, что автоматические переменные не инициализируются нулем. Таким образом, следующий код будет вести себя правильно и печатает случайные числа на экране:Странное поведение автоинициализации
#include <iostream>
using std::cout;
using std::endl;
void doSomething()
{
int i;
cout << i << endl;
}
int main()
{
doSomething();
}
Но почему не будет этого отрезала вести себя таким же образом?
#include <iostream>
using std::cout;
using std::endl;
void doSomething()
{
int i;
cout << i << endl;
}
int main()
{
int j;
cout << j << endl;
doSomething();
}
Этот фрагмент кода показывает:
0
0
Кто-нибудь знает, почему "J" и "я" вдруг на ноль здесь?
вы назначаете особое значение числа 0 - это все-таки undefined, это просто 0! –