C语言中二维数组&a[i]和a[i]有什么区别?为什么这里可以用&符?

如题所述

第1个回答  2010-11-30
&a[i]是指向数组第i个元素的地址,而a[i]是指向该元素的值~&是取地址符,表示地址~
第2个回答  2010-11-30
&a[i]是取地址,该地址中存储的是a[i]的数值,a[i]是数组的值。
第3个回答  2010-11-30
有&的是取数组的地址,没有的是直接指向数组本回答被网友采纳
第4个回答  2010-11-30
&a[i]是取存储a[i]那个内存的地址,而a[i]是你自己定义的。

C语言中二维数组&a[i]和a[i]有什么区别?为什么这里可以用&符?
&a[i]是指向数组第i个元素的地址,而a[i]是指向该元素的值~&是取地址符,表示地址~

c语言中二维数组(*a)[1]和*a[1]有什么区别,为啥他们的值不一样?_百度...
二维数组名是一个指向一个一维数组的指针,a是一个二维数组名,就是一个指向一维数组的指针,一个这样的指针求间接运输(*a),得带的是这个指针所指向的一维数组的数组名,在此是 a[0], 数组名加一个下标就是数组元素值,(*a)[1]就是 第0行数组的第1个元素 a[0][1]-->2 a[1]->通...

C语言中二维数组的引用和地址有什么区别吗?比如a[i]地...
a[i]是数组专用的方法,它本身就是指a往后偏移i个长度内存空间里存放的内容,因此用&取地址就变成了该内容对应的地址;也可以用*(a+i),a+i指从地址a偏移i个长度(此长度不是字节,取决于数组存储的元素类型)的地址(注意此时它不是指里面的内容),因此加上*以取到里面的内容。也就是说a[i]指内容,因此可以用...

C语言、二维数组指针中的 * 和 &
其实是加了i行,也就是第i行的第一个元素的地址,可以理解成a[i](把a[i]这一行想象成以为数组,根据一维数组的思路思考,就能明白了),即a+i和a[i]的值相等,如书上所说,在根据上面解释一维数组的思路考虑,&a[i][0]代表什么意思?

请教C语言
1)指向数组元素的指针变量的定义与赋值 定义和指向变量的指针变量定义相同,c规定数组名代表数组的首地址,即第一个数组元素地址。 2)通过指针引用数组元素 我们通常引用数组元素的形式是a[i],如果用指针可以这样引用,*(a+i),或定义一个指针变量p,将数组a的首地址赋给p,p=a;然后用*(p+i)引用。 注意:指针...

C语言中&array[i]为什么相当于array+i?这是一种规定吗?还有,面向对象...
是一种道理. &是取地址运算符.array这个数组变量名就相当于一个地址.[]这个运行算符里面的索引就是告诉,向前走多远去找下一个元素.array+i也是一样,从 array这个地址再走 i个那么长的地方去另一个数组元素.

在二维数组里 地址a[i]和地址*(a+i)的问题
&a[i]是不一样的,首先,a[i]是一个常量,不同的只是它只是一个地址,而&a[i]只是取这个常量的地址的物理地址,也就是物理内存中的真实地址.你可以用输出函数输出一下看看.二维数组里,a[i]是一个数组的首地址."&"是求地址的,&a[i]。。求一个地址的地址,还是地址。。一样的东西。a[i] ...

c语言中a+i是地址吗,书上说a+i是a[i]的指针,既然这样,那么*(a+i)为什...
a+i其实就是&a[i],肯定是地址 (a+i)其实就是a[i],如果a是二给数组的数组名,a[i]就肯定是地址(等同于&a[i][0]),如果a只是一维数组(指针数组除外)的数组名,a[i]就不是地址(原因是:二维数组可以看作是多个一维数组组成,即数组的数组)(a+i)+j就是&a[i][j],如果数组a是二维...

C语言二位数组a[1]表示什么
我不知道你的二维数组a[m][n]是什么,不过如果是字符串数组的话,a[1]应该表示第二个字符串(第一个是a[0]),所以puts(a[1])就是输出字符串啦。字符串数组肯定是二维以上的,a[1]表示字符串(其实这个值就是第二个字符串的起始地址,类型就是char*),a[1][0]表示的是字符(char型)...

C语言二维数组的问题
a[0][0]=1,a[0][1]=2,a[0][2]=3,a[0][3]=4 a[1][0]=6,a[1][1]=6,a[1][2]=7,a[1][3]=8 a[2][0]=6,a[2][1]=4,a[2][2]=5,a[2][3]=7 你应该一个一个标上就不会犯错误啦,你的书没看透啊,书上这方面的知识都有,好好看书吧。书看透了就明白了...

相似回答