老话题:指针求值

ProgrammerNO1 2008-10-09 11:17:54
include ""

void main()
{
int m,n,*p1=&m,*p2=n;
m=n=6;
cout << "p1=" << p1 << endl;
}
result : p1=0x0013ff7c

问:0x0013ff7c是怎么得出的???
...全文
146 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkndciapp 2008-10-10
  • 打赏
  • 举报
回复
栈上的指针,操作系统分配的
final_authority 2008-10-10
  • 打赏
  • 举报
回复
你的机器随机分配的地址。还是看看基础知识吧
baihe_591 2008-10-10
  • 打赏
  • 举报
回复
变量m的地址.

在定义了变量m后,系统会自动为它分配地址.
Big鹏 2008-10-10
  • 打赏
  • 举报
回复

int m,n,*p1=&m,*p2=n; //注意:应该*p2=&n;赋地址

地址是系统随机分配的!!
cxxer 2008-10-10
  • 打赏
  • 举报
回复
地址是操作系统按照一定的分配策略分配的
moolf 2008-10-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 ProgrammerNO1 的帖子:]
include ""

void main()
{
int m,n,*p1=&m,*p2=n;
m=n=6;
cout < < "p1="  < < p1 << endl;
}
result : p1=0x0013ff7c

问:0x0013ff7c是怎么得出的???
[/Quote]
这里p1指向的就是m的地址,这个地址是唯一的,但是我们预知不到的。
p2指向的就是n的数值,这个我们可以预知到就是6,就是这原因。
药不能停啊 2008-10-10
  • 打赏
  • 举报
回复
随机分配的
楼主的程序有点错误

*p2=n ---> *p2=&n
willam2008 2008-10-10
  • 打赏
  • 举报
回复
这是把计算机的内存中的数据直接取出来,作为P1,P1的二进制的值输出,在说一便,这是用二进制表示的结果!!!
willam2008 2008-10-10
  • 打赏
  • 举报
回复
这是用C++编写的程序
它传递的是地址,而不是实际参数本身的值.
xiao9900 2008-10-09
  • 打赏
  • 举报
回复
,*p1=&m,*p2=n;

*p2取的不是n的地址
  • 打赏
  • 举报
回复
virtual memory space is assigned by the OS when a new process is created. The one you got is an linear address from stack section, which probably grows from high address downward. The really memory access is handle by MMU -- a chip on the CPU
lann64 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yuannan 的回复:]
C/C++ code
int m,n,*p1=&m,*p2=n; //此句声明m,n.并为变量m、n随机分配地址。
int *p1=&m;//这就是m的地址赋值给p1这个指针变量。



打印的只不过是随机的一个16位的地址,没什么不解的吧?
[/Quote]
哇塞,虽说是逗乐,可也不能这样说,太容易让人误解了。
打印的可不是随即的16位地址,那是程序运行时,实实在在用的地址。

严格说,分配的也不是随机值。哪个分配也是有章法的,只是,程序运行时的环境是动态的,没法事先确定那个时点是什么样的。
lann64 2008-10-09
  • 打赏
  • 举报
回复
造cpu的更不管了,cpu自己也不知道啦,cpu只是个干活的,你让它干啥就干啥,哪管你到底是张家还是王家呀。
内存也不管,房子都造好了,门牌也挂完了,爱用哪间用那间。

o(∩_∩)o...,看来没人知道,没准掷个色子,有可能碰巧算的出来。
yuannan 2008-10-09
  • 打赏
  • 举报
回复

int m,n,*p1=&m,*p2=n; //此句声明m,n.并为变量m、n随机分配地址。
int *p1=&m;//这就是m的地址赋值给p1这个指针变量。

打印的只不过是随机的一个16位的地址,没什么不解的吧?
lann64 2008-10-09
  • 打赏
  • 举报
回复
写操作系统的也不知道是什么值,谁知道程序运行时,刚好哪个地址可用?o(∩_∩)o...
lann64 2008-10-09
  • 打赏
  • 举报
回复
楼主在逗乐?
动态分配得来的。
  • 打赏
  • 举报
回复
为啥是这个值,你得问造cpu的和写操作系统的
chlaws 2008-10-09
  • 打赏
  • 举报
回复
...
变量占内存是随机分配的,这哪有什么 为什么是这么个值的问题

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧