C艺术篇 1-2 二维数组

Posted hh-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]。


以上是关于C艺术篇 1-2 二维数组的主要内容,如果未能解决你的问题,请参考以下文章

C语言笔记初级篇第四章:数组入门

C语言笔记初级篇第四章:数组入门

C 语言二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )

c语言如何定义二维数组

求c语言指针方式引用二维数组问题

C语言指针指向一维数组与二维数组?