Инициализируйте 2D массив в declarationtime на языке программирования C

Едва ли часть языка Java, но javap дизассемблер, который идет с JDK Sun, не широко известна или используется.

25
задан gsamaras 21 August 2014 в 21:39
поделиться

6 ответов

double myArray[3][12] = {0};

или, если вы хотите избежать предупреждения gcc "недостающие фигурные скобки вокруг инициализатора" (предупреждение появляется с помощью -Wall или, более конкретно, -Wmissing-braces )

double myArray[3][12] = {{0}};
37
ответ дан 28 November 2019 в 18:17
поделиться

Если вы хотите инициализировать нулями, сделайте следующее:

double myArray[3][12] = { 0 };

Если вы хотите ввести фактические значения, вы можете вложить фигурные скобки:

double myArray[3][3] = { { 0.1, 0.2, 0.3 }, { 1.1, 1.2, 1.3 }, { 2.1, 2.2, 2.3 } };
14
ответ дан 28 November 2019 в 18:17
поделиться

Метод pmg правильный, однако обратите внимание, что

double myArray[3][12] = {{}};

даст тот же результат.

Кроме того, имейте в виду, что

double myArray[3][12] = {{some_number}};

будет работать так, как вы ожидаете, только когда some_number равен нулю.

Например, если бы я сказал

double myArray[2][3] = {{3.1}};

, массив не был бы заполнен 3.1,вместо этого он будет

3.1  0.0  0.0
0.0  0.0  0.0

(первый элемент - единственный, для которого задано указанное значение, остальные равны нулю)

Этот вопрос (c инициализация обычного массива с одним значением по умолчанию) есть дополнительная информация

9
ответ дан 28 November 2019 в 18:17
поделиться

Вы можете использовать

double myArray[3][12] = { 0 };

или

double myArray[3][12];
memset(myArray, 0, sizeof(double) * 3 * 12);
1
ответ дан 28 November 2019 в 18:17
поделиться

Метод pmg работает лучше всего, поскольку он работает с концепцией, что если вы инициализируете любой массив частично, остальные получают значение по умолчанию, равное нулю. в противном случае u может объявить массив как глобальную переменную, и, когда он не инициализирован, элементы массива будут автоматически установлены на нулевое значение по умолчанию (в зависимости от компилятора).

0
ответ дан 28 November 2019 в 18:17
поделиться

Я думаю, что это будет

double myArray[3][12] = {0}
1
ответ дан 28 November 2019 в 18:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: