这个是可以像一维数组一样使用的,但是我们学习数组的时候,不要忘记了数组就是数组,指针就是指针,有时候把数组当指针使用,那就要了解清楚它们的特性。 #include"stdio.h"intmain(){intarr1[4]={1,2,3,4};intarr2[4][4]={{1,2,3,4},{12,22,32,42},{13,23,33,43},{14,24,34,44}};int*par...
在C语言中规定,数组名代表的是数组首元素地址。a是二维数组的数组名,因此,在二维数组中*(a+i)表示的是第i+1行0列元素的地址,即a[i][0]的地址。而a+i表示的是第i+1行的首地址。
对于二维数组a[M][N],行指针是a[i](0 ≤ i < M),比如第i行第j(0 ≤ j < N)列的元素是*(a[i] + j)。
a[i]=*(&a[i]),为数组的一个列指针。a+i=&a[i],为数组的一个行指针,也是列指针a[i]的地址。*(*(a+i))=*(*&a[i])=*a[i],*a[i],表示第(i+1)行第1列的元素。~③综上所述 (a+i)、a[i]在一维数组和二维数组中的含义不同。一维数组中 (a+i)表示地址,元素地址,数组名。...
设p是指向*( p+i*N+j) 同样,a[i][j]也可使用指针下标法表示,如下: p[i*N+j] 例如,有如下定义: int a[3][4]={{10,20,30,40,},{50,60,70,80},{90,91,92,93}}; 则数组a有3个元素,分别为a[0]、a[1]、a[2]。而每个元素都是一个一维数组,各包含4个元素,如a[1]的4个元素是a...
解析 反过来思考一下:如果*(a+i) 是第i行的行首元素,那么第i行的第二个元素应该怎么表示呢?a+i 和 *(a+i)虽然值相等,但是他们的意义是不同的a+i 是数组指针的指针,p=a+i;p++;跳过一行*(a+i)是指针,p=*(a+i);p++;跳过一列反馈 收藏 ...
1. *a:以a[0][0]为首元素的一维数组.可带一个索引:(*a)[i] 即a[0][i]2. a:以a[0][0]为首元素的二维数组.可带两个索引:a[i][j]3. a[0]:同*a 4. a[0][0]:首元素 5. a[1]:以a[1][0]为首元素的一维数组.可带一个索引.6. &a[1]:以a[1][0]为首...
1. *a:以a[0][0]为首元素的一维数组。可带一个索引:(*a)[i] 即a[0][i]2. a:以a[0][0]为首元素的二维数组。可带两个索引:a[i][j]3. a[0]:同*a 4. a[0][0]:首元素 5. a[1]:以a[1][0]为首元素的一维数组。可带一个索引。6. &a[1]:以a[1][0]为首...
行地址是第i行的地址,行地址表示方式有:a+i、&a[i],用于指向一维数组的指针变量。注意,二维数组名a是表示第0行的行地址&a[0],而不是第0行第0列的元素地址&a[0][0]。 第i行第j列元素a[i][j]地址的表示方式有:a[i]+j 、*(a+i)+j 、&a[i][0]+j、&a[i][j]。 第i行第j列元素值的...
在C语言中规定,数组名代表的是数组首元素地址。如有定义int a[10][100];a表示二维数组的数组名。a也是这个数组的首地址。因此,在二维数组中*(a+i)表示的是第i+1行0列元素的地址,即a[i][0]的地址。而a+i表示的是第i+1行的首地址。 00分享举报您...