int a[][3]={1,2,3,4,5,6,7};a 数组第一维大小多少?

-洪雨- 2011-08-17 10:24:45
是不是有什么公式?
...全文
2058 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
dsoyy 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 we_sky2008 的回复:]

C/C++ code

#define GetArraySize(array) (sizeof(array) / sizeof(array[0]))

int main()
{
int a[][3]={1,2,3,4,5,6,7};

printf("%d\n", GetArraySize(a));

system("pause");
return 0;
}……
[/Quote]


学习,膜拜一下
pathuang68 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 we_sky2008 的回复:]

C/C++ code

#define GetArraySize(array) (sizeof(array) / sizeof(array[0]))

int main()
{
int a[][3]={1,2,3,4,5,6,7};

printf("%d\n", GetArraySize(a));

system("pause");
return 0;
}……
[/Quote]

++
这才是高手的写法。
yshf0325 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dsoyy 的回复:]
借楼主题目我问个问题,如果我想用sizeof的方式怎么求算?

count = sizeof(a[][3]) / sizeof(int);

sizeof(a[][3]) 这个表达式应该怎么去表述?
[/Quote]

sizeof(a[][3])这种形式不合法,编译时会报错,应写成 sizeof(a)。另外写成sizeof(a[2][3])和sizeof(a[4])的值都为4(如果是32位系统),因为a[2][3]和a[4]都只是代表数组a中的一个数,而这个数是int的。
pathuang68 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dsoyy 的回复:]

感谢wyfwx。

1维数组的数组名代表数组首地址;
2维数组,数组名代表维的地址,对吧
[/Quote]
对。
we_sky2008 2011-08-17
  • 打赏
  • 举报
回复

#define GetArraySize(array) (sizeof(array) / sizeof(array[0]))

int main()
{
int a[][3]={1,2,3,4,5,6,7};

printf("%d\n", GetArraySize(a));

system("pause");
return 0;
}
zk___23456 2011-08-17
  • 打赏
  • 举报
回复 2
你看第二维的大小嘛,他是三,那你就将大括号里的数字分组,每组三个元素,不够的补0,之后结束,数数看你分了几组就是第一维的大小。。你的问题的答案是3
Malcus 2011-08-17
  • 打赏
  • 举报
回复
我觉得是3
至善者善之敌 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 we_sky2008 的回复:]
计算第一维维数:
sizeof(array) / sizeof(array[0])
[/Quote]

++1
we_sky2008 2011-08-17
  • 打赏
  • 举报
回复
计算第一维维数:
sizeof(array) / sizeof(array[0])
dsoyy 2011-08-17
  • 打赏
  • 举报
回复
感谢wyfwx。

1维数组的数组名代表数组首地址;
2维数组,数组名代表维的地址,对吧
wyfwx 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dsoyy 的回复:]
借楼主题目我问个问题,如果我想用sizeof的方式怎么求算?

count = sizeof(a[][3]) / sizeof(int);

sizeof(a[][3]) 这个表达式应该怎么去表述?
[/Quote]
count = sizeof(a) / (sizeof(a[0][0])* 3);
dsoyy 2011-08-17
  • 打赏
  • 举报
回复
借楼主题目我问个问题,如果我想用sizeof的方式怎么求算?

count = sizeof(a[][3]) / sizeof(int);

sizeof(a[][3]) 这个表达式应该怎么去表述?
ytfire 2011-08-17
  • 打赏
  • 举报
回复
2维数组其实就是已1维数组形式储存的,第二维参数只是为了分段,便于操作。
故第二维参数不可省,会根据参数数值来区分第一维。

如题,
即{1,2,3}为a[1],{4,5,6}为a[2],{7,0,0}为a[3];
若题为a[][4]
则{1,2,3,4}为a[1],{5,6,7,0}为a[2];
tianmo2010 2011-08-17
  • 打赏
  • 举报
回复
这个系统根据你的初始赋值,会自动分配空间的

比如你这个是7个数字,而要求是3列,如果是2行多了个数字肯定不行,系统默认是3行了
luciferisnotsatan 2011-08-17
  • 打赏
  • 举报
回复
低维是3,
3*3
wyfwx 2011-08-17
  • 打赏
  • 举报
回复
3*3
暮雨晨舟 2011-08-17
  • 打赏
  • 举报
回复
应该是3
AndyZhang 2011-08-17
  • 打赏
  • 举报
回复
感觉不能这么写
吾子墨鸿 2011-08-17
  • 打赏
  • 举报
回复
显然是3*3的
Frog1228 2011-08-17
  • 打赏
  • 举报
回复
按列划分,不足的用0补足。
加载更多回复(14)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧