gpt4 book ai didi

c++ - 这个局部变量是否隐藏/隐藏了另一个常态或 Visual Studio 中的错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:23:20 26 4
gpt4 key购买 nike

我已经大大简化了这个问题,因为在更简单的情况下会出现同样的问题:

#include <iostream>

int height;
int main()
{
std::cout << height; // Visual Studio debugger shows this value as -858993460
int height;
}

enter image description here

似乎是调试器显示错误变量值的问题。变量值是正确的,因为打印变量显示正确的全局高度值 0。

最佳答案

你是对的,全局变量height在声明自动变量 height 之前,不被隐藏main() 的最后声明中.

std::cout << height;将使用全局变量 height .

是的,这让调试器感到困惑。它正在显示 local height 的值变量,在调试版本中初始化为 0xCCCCCCCC ,或 -858993460以十进制显示。

编译器做了正确的事情并获取了全局变量height在函数的第一行,它只是混淆了调试器。

关于c++ - 这个局部变量是否隐藏/隐藏了另一个常态或 Visual Studio 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48578179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com