搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 大家来看看二维数组的大小问题
标题:
大家来看看二维数组的大小问题
只看楼主
cuixingasd
等 级:
论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:7
大家来看看二维数组的大小问题
#include <stdio.h>
int main()
{
int a[5][12] ={{0}};
printf("%d\n",sizeof(a[12]));
return 0;
}
打印出来的结果是:48
请问为什么会是这样的?
搜索更多相关主题的帖子:
打印
include
return
2009-09-12 09:24
forever74
来 自:CC
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册:2007-12-27
第
2
楼
得分:10
尽管a[12]这个东东并不存在,但是作为概念,二维数组名带一个下标表示一行,也就是12个int,也就是48字节。
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2009-09-12 09:47
cuixingasd
等 级:
论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
第
3
楼
得分:0
既然a[12]不存在,它就应该打印段错误或其他警告信息。难道是二维数组定义的时候就是这样的吗?
2009-09-12 10:06
jimmywood
等 级:
论坛游侠
帖 子:30
专家分:109
注 册:2009-8-10
第
4
楼
得分:0
这个打印出来的是低的那维数组的大小 是12个int型数据占的字节数
printf("%d\n",sizeof(a[12])/sizeof(a[0][0]));
上面的语句打印出来的12
2009-09-12 11:09
Kabie
等 级:
论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
第
5
楼
得分:0
你要看整个数组的大小……用
printf("%d\n",sizeof(a));
就可以了……
2009-09-12 11:45
Kabie
等 级:
论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
第
6
楼
得分:10
以下是引用
cuixingasd
在2009-9-12 10:06的发言:
既然a[12]不存在,它就应该打印段错误或其他警告信息。难道是二维数组定义的时候就是这样的吗?
。。。多看点C基础的书吧。。。C是不管数组越界的。。。
2009-09-12 11:51
帅超
等 级:
论坛游民
帖 子:25
专家分:23
注 册:2009-9-12
第
7
楼
得分:0
以下是引用
forever74
在2009-9-12 09:47的发言:
尽管a[12]这个东东并不存在,但是作为概念,二维数组名带一个下标表示一行,也就是12个int,也就是48字节。
int 不是占2个字节吗?12*2=24的啊。因为是二维数组,int还要乘以2,
应该是这样吧?
2009-09-12 12:02
cuixingasd
等 级:
论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
第
8
楼
得分:0
回复 7楼 帅超
linux 下int型占4个字节 C对数组越界不做处理,学到
2009-09-12 13:44
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-285498-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.127766 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved