66问答网
所有问题
*(a+1)+1我记得老师说过带*的都表示该地址的数值,但是怎么这个是显示地址呢?
如题,请高手指示~亿分感谢....
这里的a应该是二维数组的指针类型呢~对不?我不明白的是为什么有这个指针符号了,他却显示地址,而不是显示数值呢?
举报该问题
推荐答案 2008-06-18
因为你是二维数组,*(a+1)+1是指较高维的值,而较高位的值就是低维的地址,比如a[5][5],*a的值是a[0],*(a+1)的值是a[1]……他们存储的是第二微值的地址.
*(a+i)+j表示第i行第j列的地址,*(a+1)+1的值就是第一行第一列的那个值的存储地址,所以第i行第j列的值就是*(*(a+i)+j).
我觉得我说的还算是清楚了吧。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/sxpsvssn.html
其他回答
第1个回答 2008-06-18
*(a+1)地址的数值
*(a+1)+1是二维数组的地址
*(*(a+1)+1)二维数组的数值
*a地址的数值
首先你要知道指向的是二维数组和一维数组~就是这么简单
第2个回答 2008-06-18
你说说a是什么类型吧?
大概猜测有可能你溢出了数组的或者指针的边界,比如int a[4],你却取了个a[5]的值,就会出现你说的地址,而不是数组的值。
相似回答
C语言中的二维数组里a+1和
*(a+1)
为什么都是
地址
答:
0表示列的移动 所以是1行0列的地址
(a+1)
中a是二级指针 取值二级指针是一级指针 一级指针指向的一维数组(二维数组中的行)一维数组移动一位只能是向下移动也就是行 所以就是 第一行的首
地址,
也就等于二维数组中,第一行零列的地址。
...1)为什么等于
a+1,
主要是想知道
*(a+1)
为什么是
一
个
地址?
答:
所以
,*(a+1),
也就是&a[1],与a[1]
都是表示
同一个意思,即&a[1][0]
...
*(a+1)
与*(a+i)有什么区别? 为什么第
一
个
表示的是地址,
第二个表示的...
答:
(a+1)
等效于a[1](a+i)等效于a[i]两者
都是表示
元素值
C中2维数组
*(a+1)
代表什么
答:
数组名
a表示
数组a的首
地址,
是a[]的首地址, 同时也是a[][]的首地址。
*(a+1)是
把a看作是一维的数组, 它其中每个元素也是一个一维数组。 所以*(a+1)就是这个总的一维数组的第二个元素, 也就是二维数组的第二行。 而*(a+1)本身又是一个数组, 它指向这个数组的首地址。 综上所述...
*(
p
+ 1) + 1
; 谁能告诉我 这句话
怎么
理解
答:
下面很多人都说了。如果是二维数组a[2][3] *p=a;的话。p一开始指向的是第0行的地址=&a[0]。p+1以后指向第一行=&a[1]。这时候外面加个*并没有指向任何内容,依然是个
地址,
因为在二维数组中并不存在a[0]这个元素。这时候再加1得到的就是&a[1][1],就是第一行第一列的地址 ...
C语言指针 *(
*(a+1)
)
是
指向a[1][0]某元素的内容还是
地址?
答:
是a[1][0]的值。外围的括号可以省略,就是
**(a + 1),*(a + 1)是
a[1][0]的地址
大家正在搜
我记得我说过我会保护你很久
我记得他说过不能碰这些东西的
你记得说过的诺言你记得
你记得说过的诺言你记得叹息
我记得我说过
我记得说过的诺言
我记得你说过的话
我记得有一位名人曾经说过的英文
我记得曾经有人对我说
相关问题
*(a+1)是表示地址还是数据呀 *的内容不是数据嘛,那*(...
c++求解释下面式子中*((a+1)[1])=*(*((a+...
*(*(a+i)+j)的问题
C语言菜鸟求教:请问下面这段解释中“*(a+1)表示的是数组...
有一个二维数组a【2】【3】 老师说*(a+1)[2]越界了...
为什么C语言中*(a+i)+j能表示a[i][j]的地址
若有定义int a[3][4];不能表示a[1][1]的是 ...
int a[5]={1,2,3,4,5}; int * pt...