在C语言中二维数组元素在内存中的存放数据,在C语言中,二维数组元素在内存中的存放顺序是____。(...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

daxuezi

2013.12.31

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:49%    等级:12

已帮助:6162人

假设数组是a[m][n],并且假定系统为其分配的是一整块内存,那么元素在内存中存放的顺序依次是:

a[0][0],a[0][1].....a[0][n-1],

a[1][0],a[1][1].....a[1][n-1],

a[2][0],a[2][1].....a[2][n-1]

.......

a[m-1][0],a[m-1][1].....a[m-1][n-1]

共mxn个元素。请注意,分行/分列是人为的,只是为了便于从逻辑上描述,实际上每一个元素的起始地址,从左到右,再到下一行的最左边,都是顺序增加的。

下面是用来验证上述元素顺序的一个简单小程序以及运行结果。

#include

int main()

{

int a[3][4];

int *p;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

{

a[i][j]=(i+1)*(j+2);

printf("a[%d][%d]=%d\n",i,j,a[i][j]);

}

p=&a[0][0];

for (i=0;i<12;i++)

{

printf("*(p+%d)=%d\n",i,*(p+i));

}

return 0;

}

程序运行结果:

a[0][0]=2

a[0][1]=3

a[0][2]=4

a[0][3]=5

a[1][0]=4

a[1][1]=6

a[1][2]=8

a[1][3]=10

a[2][0]=6

a[2][1]=9

a[2][2]=12

a[2][3]=15

*(p+0)=2

*(p+1)=3

*(p+2)=4

*(p+3)=5

*(p+4)=4

*(p+5)=6

*(p+6)=8

*(p+7)=10

*(p+8)=6

*(p+9)=9

*(p+10)=12

*(p+11)=15

07分享举报

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值