当前位置: 首页 > 知识库问答 >
问题:

读取未初始化的变量[重复]

谷梁宝
2023-03-14

读取未初始化的变量会导致未定义的行为,例如

#include <iostream>

int main()
{
    int a;
    std::cout << a << std::endl; // undefined behavior
}

有人能给这个事实一个正式的解释吗?

共有1个答案

薛枫
2023-03-14

下面是相关部分,我想:

4.1左值-右值转换

1-非函数、非数组类型T的glvalue可以转换为prvalue。如果T是不完整的类型,则需要此转换的程序格式错误。如果glvalue所指的对象不是T类型的对象,也不是派生自T的类型的对象,或者如果对象未初始化,则需要此转换的程序具有未定义的行为。

变量是左值,我认为“左值到右值转换”是取变量值的过程。

(注意——我不熟悉C标准,所以我可能没有找到适用于这个例子的部分。我所做的只是在PDF中搜索“未初始化”,并寻找看起来最相关的命中。)

 类似资料:
  • 本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的

  • 我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢

  • 我不知道这段代码有什么问题,也不知道为什么会出现错误: 变量isPrime可能尚未初始化 这是完整的代码:

  • 我有以下Java代码: 但是,当我运行它时,它会抛出以下错误: 我在do之前初始化了变量。while 循环,并在 try. 中设置值。捕获循环。似乎尚未设置该变量。抱歉,如果这是一个相当基本的问题,但我似乎无法弄清楚。

  • 问题内容: 我的Java程序中出现以下错误: Java变量未初始化错误…错误:变量nam和r未初始化位置类子级 但是并且已经初始化,但是我仍然遇到相同的错误。 问题答案: 不要获取 默认值 ,应在使用它们之前对其进行初始化,并使用main中的默认值进行初始化,这样就可以了。 顺便说一句,考虑为您的类和变量命名是有意义的。