注册 登录
编程论坛 VC++/MFC

为什么我的指针地址相差12个字节?

fgfdfg 发布于 2011-07-02 23:26, 664 次点击
请问一下:
为什么我的VC2010++本地C++(Win7)

#include<iostream>

using std::cout;
using std::endl;
using std::hex;

int main()
{
    int number1 (55), number2 (99) , number3 (10);
    int* pnumber (nullptr);

    pnumber = &number1;
    cout << "number1 address = " << pnumber << endl;
    pnumber = &number2;
    cout << "number2 address = " << pnumber << endl;
    pnumber = &number3;
    cout << "number3 address = " << pnumber << endl;
    return 0;
}

运行结果指针地址总是相差12字节,为什么?谢谢。

是巧合吗,还是什么原因?
我更改过,也增加过,还是一样相差12字节。
只有本站会员才能查看附件,请 登录
4 回复
#2
yuccn2011-07-03 09:14
申请内存空间问题吧,你应该是用debug版本输出的了,debug版本是相差12(个字节),可能是编译器容错的机制吧。
如果你调回release版本来输出,就会相差4的,4就是每个整形的大小,4个字节。
#3
yuccn2011-07-03 09:18
debug版本
只有本站会员才能查看附件,请 登录

release版本
只有本站会员才能查看附件,请 登录

#4
fgfdfg2011-07-04 16:56
回复 2楼 yuccn
非常感谢。正解。
#5
fgfdfg2011-07-04 16:57
回复 3楼 yuccn
非常感谢。果然,我运行出来也是这个结果。
1