培训期许:int a[][3]=2{2*3};是正确定义二维数组,我要专回答家?

来源:百度文库 编辑:中科新闻网 时间:2024/05/15 04:58:03
int a[][3]=2{2*3};是正确定义二维数组吗?,我要专回答家。
int a[][3]= {2*3}; 这个呢?

int a[][3]=2{2*3};
这个语句语法是错的,错在二维数组的初始化。初始化值要放在花括号里。

int a[][3]; 二维数组声明,其中一维大小不定。

数组的初始化不要求全部元素都赋值,所以:
int a[][3]={2*3}; -- 初始化 a[0][0] 等于6
int a[][3]={2,2*3}; -- 初始化 a[0][0] 等于2,a[0][1]等于6
int a[][3]={2,6}; -- 初始化 a[0][0] 等于2,a[0][1]等于6
...
都是正确的。

你可以试试:
int a[][3]={2,2*3};
printf ("%d %d %d\n",a[0][0],a[0][1],a[0][2]);
a[1][0] = 14;a[1][1] = 15; a[1][2]=16;
printf ("%d %d %d\n",a[1][0],a[1][1],a[1][2]);
就明白了。

下面的正确,上面的应该改成
int a[][3]={{2},{2*3}};才对

int a[][3]={2*3};和int a[][3]={{2},{2,3}}都正确。
数组的初始化不要求全部元素都赋值。

至于int a[][3]=2{2*3};我实在是看不懂。

我想问一下
int a[][3];

int *a[3];
一样么?

原来如此