Visual C ++ 2005 - локальные переменные типа int и double по умолчанию инициализируются в 0 или нет? - PullRequest
1 голос
/ 04 апреля 2011

Мой C ++ стал немного ржавым, поэтому быстрый вопрос в Visual C ++ 2005 - локальные (для работы) int и двойные переменные инициализируются по умолчанию 0 или нет?

Правильно ли это в следующемcode:

void Foo()
{
int a, b, c = 0;
double d, e, f = 0.0;
}

c и f инициализируются равными 0 и 0.0 соответственно, а b, c, d и e неинициализированы и, вероятно, будут содержать некоторый мусор при компиляции в режиме выпуска со всеми включенными оптимизациями

Ответы [ 3 ]

7 голосов
/ 04 апреля 2011

Они не инициализируются по умолчанию.a, b, d и e будут неинициализированы.

3 голосов
/ 04 апреля 2011

автоматические локальные переменные не инициализируются, если они не были явно инициализированы в вашем коде или имеют тип с конструктором по умолчанию

ура и hth.,

0 голосов
/ 04 апреля 2011

они содержат некоторые значения мусора, если не инициализированы каким-либо значением.Неважно, локальные они или глобальные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...