标题: 我是小白,能帮我看看这个程序打印的结果是什么嘛?为什么每次打印的值都不一样 [打印本页]

作者: 丢车保帅    时间: 2023-9-14 20:11
标题: 我是小白,能帮我看看这个程序打印的结果是什么嘛?为什么每次打印的值都不一样
这个指针输出打印的结果不应该是a的存储地址吗?为什么每次结果都不一样?小白有点不知所措了

mmexport1694693432998.png (41.28 KB, 下载次数: 55)

mmexport1694693432998.png

mmexport1694693429252.png (39.14 KB, 下载次数: 55)

mmexport1694693429252.png

作者: Hephaestus    时间: 2023-9-14 20:58
谁规定每次存储的地址必须一样的?是你自己凭空想象的而已。
作者: 田贺    时间: 2023-9-14 21:05
想输出1用*p
作者: Hephaestus    时间: 2023-9-14 22:31
早年PC是16位机的时代,地址是segment+offset的20位地址,OS加载com或exe文件的时候,offset是固定的,segment是OS觉得哪里好就加载到哪里,这样从汇编来看,一个指针的segment每次都不一样,但是offset总是一定的。

从386开始,PC的地址变成了4G空间的32位线性地址,那么加载的地址就完全找不到规律了,OS愿意加载到哪里都可以。
作者: feihangdan    时间: 2023-9-15 09:09
你输出的变量a的地址,当然每次运行会不一样;按照代码的意思,应该是输出a的值,应该写成
作者: liqing19891017    时间: 2023-9-15 11:49
你好,这个软件好安装吗,我也想试试这个软件,另外,你想输出指针的值,请用*P
作者: 丢车保帅    时间: 2023-11-3 08:48
liqing19891017 发表于 2023-9-15 11:49
你好,这个软件好安装吗,我也想试试这个软件,另外,你想输出指针的值,请用*P

直接去官网下载就可以了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1