我试图以以下方式初始化多维数组,但我不确定它是否正确。我正在重新初始化使用多维数组实现的大型表,我不确定如何做到这一点。我需要一次初始化整个行,不能单独初始化元素。
int array[3][3];
int ind = 0;
array[ind++] = {1,2,3};
array[ind++] = {4,5,6};
array[ind++] = {7,8,9};
所以我不能做这样的事情Array [3][3] = {{1,2,3},{4,5,6},{7,8,9}};因为我真正想做的是这样的
int array[][3];
int ind = 0;
array[ind++] = {1,2,3};
if(contion1)
array[ind++] = {4,5,6};
else
array[ind++] = {0,0,0};
array[ind++] = {7,8,9};
我希望这使它更清楚。这不是理想的,我知道但是我交给我的代码是#ifs类似这样的
int array[][3] = {
{1,2,3},
#if contion1
{4,5,6},
#else
{0,0,0},
{7,8,9}};
并被要求去掉#if
请使用以下声明:
int array[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
所以你需要一个循环:
int num = 1;
for(i = 0 ; i < 3 ; i++)
{
for(j = 0 ; j < 3 ; j++)
{
arr[i][j] = num;
num++;
}
}
就是这么简单。不能在一行中初始化数组,只能在第一个声明中初始化。你所说的就是一个循环
要重新初始化,必须使用loops
for ( i = 0; i < 3; i++) {
condition = // whatever your condition is
for ( n =0; n < 3; n++) {
// if condition is zero your value is 0 non-zero condition gets the calculated value
array[i][n] = condition ? ( i * 3) + n + 1 : 0;
}
}