二维数组中,二维数组第i行的首地址为:a

2021-01-14 10:08:03 字数 2660 阅读 3712

1楼:匿名用户

a[i] 与 *(a+i) 的作用一样

数组是一片相邻的内存地址

a是储存数组的首地址

*(a+i) 就是地址的操作

a[i] 就是用 operator 把上面那个定义成符号

2楼:目标月薪

例如:int a [ i ] [ j ];

a[i] 等于&a[i][0]

*(a+i) 等于&*(*(a+i)+0)

二维数组中,a+i表示第i行的地址,那为什么*(a+i)也表示第i行的地址。

3楼:钭运旺登子

二维数组每行的首地址分别为a[0],a[1]……a[i],*(a+0)是a[0],*(a+1)是a[1]……*(a+i)是a[i]。a+i是地址,但不代表第i行的首地址a[i]。

4楼:匿名用户

a+i和*(a+i)的值相同没错,但它们的类型不一样,代表的意义也不一样。a+i还是2维指针,*(a+i)则是一维指针。编译器对它们的解析和操作是不一样的。

指针指向二维数组,a+i表第i行首地址,为什么加了个取内容符的*(a+i)还表示第i行首地址

5楼:匿名用户

书上有解释啊。对于一位数组a来说,a[i]和*(a+i)等价,因此对于二维数组内b来说,b[i]和*(b+i)等容价,但他们的值都是&b[i][o]。也就是说,二维数组的指针某些表达是从一维数组演变来的。

别忘了二维数组是可以看作一个元素为数组的一维数组。望采纳

6楼:太原绑哥

二维数组每行的首地址分别为a[0],a[1]……a[i],*(a+0)是a[0],*(a+1)是a[1]……*(a+i)是a[i]。a+i是地址,但不代表第i行的首地址a[i]。

二维数组中*(a+i)是什么意思

7楼:匿名用户

在c语言中规定,数组名代表的是数组首元素地址。a是二维数组的数组名,因此,在二维数组中*(a+i)表示的是第i+1行0列元素的地址,即a[i][0]的地址。而a+i表示的是第i+1行的首地址。

c语言中二维数组*(a+i)的意义

8楼:

*(a+i)——二维数组第i行(从0起算)第一个元素的地址。

9楼:匿名用户

所谓*(a+i)等价于a[i],而a[i]是一个数组名,那么a[i] = &a[i][0],数组名等与首元素的地址

定义 int a[2][2]的二维数组,a+i表示第i行首地址,*(a+i)表示第i行第0列元素地址,我瞬间就懵逼了

10楼:君上沙夏

a+i表示第i行首地址,*(a+i)表示第i行第0列元素这样说才是对的。

第i行首地址和第i行di0列元素地址是一个意思。不明白可以追问

在二维数组a[ i ][ j ]中*(a+i)表示第i行的首地址,为什么不是表示第i行首元素呢?

11楼:伊·梵

反过来思考一下:

如果 *(a+i) 是第i行的行首元素,那么第i行的第二个元素应该怎么表示呢?

a+i 和 *(a+i)虽然值相等,但是他们的意义是不同的a+i 是数组指针的指针,p=a+i;p++;跳过一行*(a+i)是指针,p=*(a+i);p++;跳过一列

12楼:匿名用户

内存中顺序存放数组元素

数组名表示数组的首地址

,a表示整个二维数组的首地址

你可以把二维数组a[ i ][ j ]当成i个大小为j的一维数组,因此对a取间接访问将会得到一个一维数组元素,仍然是一个地址。

这样第i行的首地址就是a[i],等价于*(a+i)

13楼:兜里有两块糖

首先a声明的是一个二维数组,但这个只是形式,便于编程人员理解,但是实际在内存中存的还是顺序存放的,也就是说是一个连续的内存空间。

*(a+i)这个只是记录了第i个元素的首地址,当i+1的时候,其实是跳过了后面的j个元素,去访问i+1个元素。

所以你可以理解为是一个i行j列的矩阵。

*(a+i)只是表示i行的首地址。

*(*(a+i))这个表示的是第i行的首元素。

c语言中二维数组a[i][j]中,a+i=*(a+i)=a[i]=&a[i]是怎么理解的.

14楼:理科女

a+i=*(a+i)=a[i]=&a[i]&a[i] 和a+i是获取i行数组的首地址a[i] 和*(a+i)是访问第i行的数组望采纳!!

15楼:暴躁内酷

楼主 这几个不是相等的 其中a+i和&a[i]都是表示的内存地址 而*(a+i)和a[i]是取值。

16楼:匿名用户

首先,a表示地址,a+i 表示相对于地址a偏移 i 个单位的地址,即,a + i 也是地址

a[i]表示第几行的地址

&a[i]表示对第i行的地址再取地址。

17楼:匿名用户

&a[i] 和a+i是获取i行数组的首地址

二维数组中a1和a1的值为什么都是地址

1楼 匿名用户 a 0 第0行的行地址 a 1 第1行的行地址 a 1 第一行的第一个数。 希望下面的程序可以帮到你 include include int main void printf a d t a printf a 1 d n a 1 printf a d t a printf a 1 d...

c语言二维数组a,为什么a和(a+1)等

1楼 a 1 指针取得不就是地址吗 2楼 匿名用户 a 1 是定义的指针, 因为数组的起始地址a 0 可以用a来代替 所以a 1 和 a 1 是同一个地址 3楼 首先a代表整个数组的首地址没问题吧,a 1就是把地址下移, a 1 就是取其地址的内容。这回可以理解了吧! c语言中二维数组a i j 为...

java定义二维数组a,并通过循环实现对数组

1楼 既见君兮 int a new int 5 6 for int i 0 i 5 i 如果你想要给每一个元素赋值 不同,那你必须要有一个已知的足够大的数组或者列表 2楼 椰子猪啊 public static void main stringargs for int i 0 i 5 i 3楼 匿名用...