在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分享举报

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值