Я знаю, что это основная тема.Но я сталкиваюсь с очень странным случаем.Вот две версии моего кода: Версия 1:
int num;
char *ptr;
std::cout << (num == 0) << std::endl;
std::cout << (ptr == nullptr) << std::endl;
Вывод:
1
0
Версия 2:
int num;
char *ptr = nullptr;
std::cout << (num == 0) << std::endl;
std::cout << (ptr == nullptr) << std::endl;
Вывод:
0
1
Кажется, что начальное значение целого числа num зависит от инициализации указателя ptr.
Может кто-нибудь объяснить это?Я прочитал другой пост, но все еще не понимаю.Я пытался скомпилировать и запустить много раз.Значение не кажется случайным.Это всегда такой результат.
Я использую g ++ init.cc -o out -std = c ++ 11
Заранее спасибо!