请教一道C++关于数组的问题,求解释
执行语句inta[3][4]={{1,2,3,4},{5,6,7},{8,9},{10}}后,a[2][2]的值是...
执行语句 int a[3][4]={{1,2,3,4},{5,6,7},{8,9},{10}}后,a[2][2]的值是
展开
6个回答
2013-01-31
展开全部
是0啊,在你的数组初始化的时候,如果4个元素中有小于四个被复制的,剩下的元素都没赋值为0的
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
g++执行结果如下:
[yu@yu array]$ cat test.cc
#include <cstdio>
int main()
{
int a[3][4] ={{1,2,3,4},{5,6,7},{8,9},{10}};
printf("[%d]\n",a[2][2]);
return 0;
}
[yu@yu array]$ g++ test.cc
test.cc: In function ‘int main()’:
test.cc:5:44: error: too many initializers for ‘int [3][4]’
[yu@yu array]$
如果是gcc可以通过
是 0 (第三行第三列 为没有值,编译器决定)
===================================================
所以这是一个不符合C++规范的题目
如果非要给个结果的话,0
[yu@yu array]$ cat test.cc
#include <cstdio>
int main()
{
int a[3][4] ={{1,2,3,4},{5,6,7},{8,9},{10}};
printf("[%d]\n",a[2][2]);
return 0;
}
[yu@yu array]$ g++ test.cc
test.cc: In function ‘int main()’:
test.cc:5:44: error: too many initializers for ‘int [3][4]’
[yu@yu array]$
如果是gcc可以通过
是 0 (第三行第三列 为没有值,编译器决定)
===================================================
所以这是一个不符合C++规范的题目
如果非要给个结果的话,0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a[3][4] 是 3行 4列,你定义赋值里面怎么是4行?
如果 a[4][4] 那么,a[2][2]就是0
如果 a[4][4] 那么,a[2][2]就是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有一个问题呀a[3][4]应该写成a[4][4]吧,不然会出错!
改正后再数吧!
0列 1 2 3
0行 1, 2, 3, 4
1 5 , 6, 7, 0
2 8, 9, 0, 0
3 10, 0, 0, 0
a[2][2]就是9后面的那个0了!
改正后再数吧!
0列 1 2 3
0行 1, 2, 3, 4
1 5 , 6, 7, 0
2 8, 9, 0, 0
3 10, 0, 0, 0
a[2][2]就是9后面的那个0了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a[3][4]={{1,2,3,4},{5,6,7},{8,9},{10}}这个本就不对。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询