C语言中 取内容与取地址运算符的问题

 我来答
释来福嘉烟
2020-02-02 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1220万
展开全部
我明白你什么意思,指针的概念确实不好理解!
1,先给你说下指针,你把指针理解了运算符的抵消就明白一半了!
指针里面是保存的内存地址(就像int变量里面保存的是整型变量一个意思)。
整型变量保存在内存里面,我可以通过这个变量名称来调用这个数据,也可以通过指针里面这个变量的地址加上*(间接访问运算符),来调用这个数据。
2,再说下运算符*和&
*是间接访问运算符:就是可以通过地址,找到这个地址里面的变量,所以
*p1
就等同于变量a
&是求地址运算符:就是将变量所在的内存地址,提取出来
这两个运算符的运算等级是相同的,也就是说谁距离变量近,就谁先。所以*&a和*(&a)是一样的,都是先取地址,在对地址进行间接访问。但是一定要注意*与&的顺序,&*a是无效的。
3,再说下题
*运算符就是对地址进行操作的,那么
*地址
的意思就是访问地址里面的数据,而&a就是取变量a的地址,所以*&a:
先取变量a的地址

对地址进行间接访问,两个操作就相互抵消了,最后还是变量a。
4,还有什么不明白的么?
之良恭午
2019-10-10 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:2262万
展开全部
无代码无真相。
是类似于这样吗:
int
a;
printf("address:
%p\n",
&a);
有的时候,退出程序后立即重新运行一次,使用的变量的地址还会是之前的地址,这在我之前测试程序的时候发现的,每次退出再重新运行程序,有几次打印的变量的地址都是一样的。
就算是特意开其它程序,其它程序占用的内存空间也不一定会是你那个程序之前占用的内存空间,可用内存越大,程序的内存空间的重叠几率就会越大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式