首页 > 解决方案 > 为什么在修改我的代码以使用指针后变量的地址发生了变化?

问题描述

在使用指针之前的内存地址&x0x61ff0c

#include <iostream>
#define log(x) std::cout << x << std::endl;

int main()
{
    int x = 5;
    log(&x);
}

&x但是在使用指针后它变成了0x61ff08

#include <iostream>
#define log(x) std::cout << x << std::endl;

int main()
{
    int x = 5;
    int* ptr = &x;
    log(ptr);
    log(&x);
}

为什么会改变?不是应该没有吗?

标签: c++

解决方案


你应该像这样运行你的程序

#include <iostream>
#define log(x) std::cout << x << std::endl;

int main()
{
    int x = 5;
    log(&x);
    int* ptr = &x;
    log(ptr);
    log(&x);
}

推荐阅读