*(a+i)与a[i]是一样的地址,为什么?
答案:3 悬赏:20 手机版
解决时间 2021-02-12 14:04
- 提问者网友:兔牙战士
- 2021-02-11 18:59
c++二维数组指针中说*(a+i)表示数组a的第i行第0列元素的地址,可是按照指针概念里说的符号*是取内容运算符,那*(a+i)应该就是取地址i 行0列元素的值,怎么会是地址,这个不懂,希望帮忙,谢谢!!!
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-02-11 19:55
这么说吧,*(a+i)与这个地址存的参数等效,*的意思是根据指针这个地址调出这个地址上的值。那么,说是地址也没有错,只能说不是很严谨。
全部回答
- 1楼网友:蕴藏春秋
- 2021-02-11 21:40
不是的,给*p赋值,并不是直接赋给它数值,而是赋给他一个地址,比如说:*p=&i,那么就给*p赋给了i的内存地址,系统在读取到内存地址之后再读出该内存所存的数值,而*p的内存地址等于i的内存地址,所以*p的数值与i的数值是一样的,虽然 在赋值语句之后,*p等价于i, 但是不能说直接把数值赋了*p。*p=&i的含义是变量i的地址作为一个数据存放在指针变量p所对应的内存单元中。
- 2楼网友:空山清雨
- 2021-02-11 20:38
*(a+i)与a[i]是一样的地址应该是说他们指向的都是同一个内存单元,也就是说*(a+i)指向的值的地址,与a[i]指向的值的地址都是一样的。也就是说他们得到的值是一样的。
这里不是说他们得到的是一个内存变量的地址还是内存变量的值,只是说明他们是一样的,得到的值一样,换句话说就是一样的地址。(一样的地址难道值会布一样??)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯