Что считается массивом без инициализации? - PullRequest
0 голосов
/ 20 февраля 2019

Я не уверен насчет этих двух вариантов:

пример 1:

const int SIZE = 4;

int numbers[SIZE] = {};  //is this array initialized?

cout << numbers[0];

пример 2:

const int SIZE = 4;

int numbers[SIZE]; // is this array initialized?

cout << numbers[0];

Проблема со вторымчто вывод равен 4196112.

Это означает, что "int numbers [SIZE] = {}" не инициализировано правильно?

1 Ответ

0 голосов
/ 20 февраля 2019

int numbers[SIZE] = {} выполняет общую инициализацию, что для int s означает инициализацию значения, что означает, что все они инициализируются равными 0.

int numbers[SIZE]; объявляет массив неинициализированных int s.

Примечание: если массив имеет статическую длительность хранения, он инициализируется нулями, даже без явного = {}.

Кроме того, согласованная инициализация позволяет указать некоторые инициализаторы, а остальные будут инициализированык нулю (или по умолчанию для их типа).

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