星象巷 2022-04-11 23:51 采纳率: 50%
浏览 29

C++ 输出变量地址前后不一

两次运行的代码如下

#include<iostream>
#include<Windows.h>
using namespace std;

int main()
{
    while(1)
    {
        int a = 1;
        int b = 2;
        int c = 5;
        int d = 3;


        cout << &a << endl;
        cout << &b << endl;
        cout << &c << endl;
        cout << &d << endl;

        Sleep(1000);

        cout << endl;
       
    }


}

#include<iostream>
#include<Windows.h>
using namespace std;

int main()
{

    while(1)
    {
        int a = 1;
        int b = 2;
        int c = 5;
        int d = 3;


        cout << &a << endl;
        cout << &b << endl;
        cout << &c << endl;
        //cout << &d << endl;

        Sleep(1000);

        cout << endl;
       
    }


}

只是注释掉了一行

运行结果

两次得到的输出结果(即变量a, b, c的地址)竟然不一样,
第一段代码运行结果:

img

而第二段代码运行结果为:

img

请问这是怎么回事,造成这个结果的原因是因为链接过程当中的重定位吗?

  • 写回答

2条回答 默认 最新

  • 非西昂 2022-04-12 00:05
    关注

    当变量声明的时候,计算机会用一块内存存储值,程序结束的时候释放掉。第二次运行的时候又会重新找块内存存储,两次的地址不一定会相同的

    评论

报告相同问题?

问题事件

  • 创建了问题 4月11日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题