返回信息流using namespace std;
int ia[3][4]={
(0,1,2,3), (0,1,2,3), (0,1,2,3),(0,1,2,3)
};
int ia1[3][4]={
(3), (3), (3),(3)
};
int ia2[][4]={
(3), (0,3), (0,1,2,3),(0,1,2,3)
};
int ia3[][4]={
(3), (3), (3),(3)
};
int main(int argc, char* argv[])
{
cout<<sizeof(ia)<<endl;
cout<<sizeof(ia1)<<endl;
cout<<sizeof(ia2)<<endl;
cout<<sizeof(ia3)<<endl;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #16542同步于 2008/11/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
sizeof二维数组的结果。为什么呢?
lodas
2008/11/24镜像同步21 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
int ia[4][4]={
(0,1,2,3), (0,1,2,3), (0,1,2,3),(0,1,2,3)
};
int ia1[4][4]={
(3), (3), (3),(3)
};
int ia2[][4]={
(3), (0,3), (0,1,2,3),(0,1,2,3)
};
int ia3[][4]={
(3), (3), (3),(3)
};
int main(int argc, char* argv[])
{
cout<<sizeof(ia)<<endl;
cout<<sizeof(ia1)<<endl;
cout<<sizeof(ia2)<<endl;
cout<<sizeof(ia3)<<endl;
}
这样的话就output为:
64
64
16
16
用小括号不是二维数组,而是逗号表达式,因此lz给的四个数组都只有4个元素,看下面:
#include <iostream>
using namespace std;
int ia[3][4]={
{0,1,2,3}, {0,1,2,3}, {0,1,2,3}
};
int ia1[3][4]={
{3}, {3}, {3}
};
int ia2[][4]={
{3}, {0,3}, {0,1,2,3}, {0,1,2,3}
};
int ia3[][4]={
{3}, {3}, {3}, {3}
};
int main(int argc, char* argv[])
{
cout<<sizeof(ia)<<endl;
cout<<sizeof(ia1)<<endl;
cout<<sizeof(ia2)<<endl;
cout<<sizeof(ia3)<<endl;
return 0;
}
结果是:
48
48
64
64
囧...
【 在 sunnyU 的大作中提到: 】
: 用小括号不是二维数组,而是逗号表达式,因此lz给的四个数组都只有4个元素,看下面:
: #include <iostream>
: using namespace std;
: ...................
确实是二维数组啊! 请看C++primer p141
【 在 sunnyU 的大作中提到: 】
: 用小括号不是二维数组,而是逗号表达式,因此lz给的四个数组都只有4个元素,看下面:
: #include <iostream>
: using namespace std;
: ...................
不是用{}了吗? 你能写个例子吗?
【 在 Solmyr 的大作中提到: 】
: 我觉得全是64,没实验。等会试试
: 还有,你数组初始化内部也要用{}阿