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楼 匿名用...