二维数组这样赋值对吗?

来源:百度知道 编辑:UC知道 时间:2024/05/09 17:04:17
a[ROW][COL]=
{
0,0,0,1,1,0,0,1,0,0,1,1,1,0,
1,0,0,1,1,0,0,1,1,0,1,1,0,0,
1,1,0,0,0,0,0,1,1,0,0,0,1,0,
1,0,1,0,0,0,0,1,1,0,0,0,0,1,
1,0,0,1,1,0,0,1,0,0,0,0,1,0,
0,1,0,0,0,0,0,1,0,0,1,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,0,0,0,
0,1,1,0,1,0,0,0,1,0,1,0,1,1,
1,1,0,0,0,1,1,1,0,1,0,0,1,1,
0,0,0,0,0,0,0,0,0,0,0,0,1,0,
1,0,0,1,0,1,1,0,0,0,0,0,0,0,
0,0,0,0,1,0,0,0,0,0,0,0,0,0,
1,0,0,0,0,0,1,1,1,0,0,0,0,0,
1,0,1,0,0,0,1,0,0,0,0,0,0,0
};

compile的时候说:
error C2059: syntax error : '{'
error C2143: syntax error : missing ';' before '{'
error C2143: syntax error : missing ';' before '}'
加了大括号也不对...

前面定义了的a ,ROW,COL

#define ROW 14 //line
#define COL 14 //colume

int a[ROW][COL];

嗯,我知道错了...就是因为我在前面已经定义了int a[ROW][COL],后面又这样赋值....
只有数组初始化的

可以这样赋值的,二维数组相当于一个一位数组(其每个元素又是一个一位数组),一般按照分段赋值 ,像下面这样:

int iArray[2][3] =
{
{0, 0, 0},
{1, 1, 1}
};

连续赋值也是可以的,像这样(注意初始值的个数不能大于数组元素的个数):
int iArray[2][3] =
{
0, 0, 0,
1, 1, 1
};

你编译错误可能是一下原因:
1、初始值列表中元素的个数多于数组元素的个数ROW*COL;
2、数组a在前面没定义过,如果这个表达式就是定义,那么你丢了类型。

不对,里面还要有大括号才行

int a[14][14]=
{
0,0,0,1,1,0,0,1,0,0,1,1,1,0,
1,0,0,1,1,0,0,1,1,0,1,1,0,0,
1,1,0,0,0,0,0,1,1,0,0,0,1,0,
1,0,1,0,0,0,0,1,1,0,0,0,0,1,
1,0,0,1,1,0,0,1,0,0,0,0,1,0,
0,1,0,0,0,0,0,1,0,0,1,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,0,0,0,
0,1,1,0,1,0,0,0,1,0,1,0,1,1,
1,1,0,0,0,1,1,1,0,1,0,0,1,1,
0,0,0,0,0,0,0,0,0,0,0,0,1,0,
1,0,0,1,0,1,1,0,0,0,0,0,0,0,
0,0,0,0,1,0,0,0,0,0,0,0,0,0,
1,0,0,0,0,0,1,1,1,0,0,0,0,0,
1,0,1,0,0,0,1,0,0,0,0,0,0,0
};
OK

等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等

???