C艺术篇 1-2 二维数组

本文深入探讨了二维数组的特性,特别是其在内存中的布局方式。通过具体实例解释了二维数组元素的地址表示,以及如何通过一维数组的方式访问二维数组。同时,文章详细对比了二维数组名称、数组元素和地址之间的关系,以及在进行运算时的不同表现。

接下来讨论二维数组。若有一个二维数组如下:

int x[3][2] ={10,20,30,40,50,60};

此数组共有六个元素(3行,2列),每一元素的地址为&x[0][0]、&x[0][1]、&x[1][0]、&x[1][1]、&x[2][0]、&x[2][1]。

 

从输出的结果得知x[0]等于&x[0][0],x[1]等于&x[1][0]。

由上面的例子 我们知道了一个二维数组x 当用一维数组表示的时候 ,x里面的数字表示的是行,列默认为0。

集合1-1里面说的数组名就是地址,所以可以表示 x等于&x[0][0],x+1等于&x[1][0]。

虽然x[0]和x皆表示&x[0][0],若两者加1,结果是否一样呢?

请看下面的例子

 

从输出的结果得知,虽然x与x[0]都是等于&x[0][0],但各加1个单位是不一样的,如x+1是等于&x[1][0],它是第二行第一个元素的地址

而x[0]+1等于&x[0][1],它是第一行第二列元素的地址。

结合刚刚那句话

 

得出结论:二维数组表示时: x可以表示为地址&x[0][0],x[0] == x[0][0],x[1] == x[1][0],因为当用一维数组表示二维数组时,只表示行,列默认为0。

                        当进行运算符运算时:x+1等于二维数组行+1,即&x[1][0]。x[0]+1等于二维数组列+1,即x[0][1]。

转载于:https://www.cnblogs.com/Hh-blog/p/9979521.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值