接下来讨论二维数组。若有一个二维数组如下:
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
时间: 2024-10-15 13:29:34