int a[2][3]={{1},{2},{3}};和int a[ ][3]={{1},{2},{3}};哪个正确的啊?还有一个哪里有错啊!谢谢!
int a[2][3]={{1},{2},{3}}; // 这是错误的,{1},{2},{3}表明,该数组有3行,但声明的是2行。VC 6.0中的错误信息是: error C2078: too many initializers
int b[][3]={{1},{2},{3}}; // 这是正确的,因为第一维未声明,根据初始化表编译程序可以计算出第一维是3,等同于int b[3][3]={{1,0,0},{2,0,0},{3,0,0}};
int b[][3]={{1},{2},{3}}; // 这是正确的,因为第一维未声明,根据初始化表编译程序可以计算出第一维是3,等同于int b[3][3]={{1,0,0},{2,0,0},{3,0,0}};
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-07-03
int a[ ][3]={{1},{2},{3}}; 这个是正确的,编译器会根据初始化列表计算出第一维的长度
int a[2][3]={{1},{2},{3}};这个是错误的,初始化列表里的3组括号说明这个数组是3行(第一维是3),超过定义的长度了
int a[2][3]={{1},{2},{3}};这个是错误的,初始化列表里的3组括号说明这个数组是3行(第一维是3),超过定义的长度了
第2个回答 2012-07-03
第二个是正确的