int main()
{
int a;
cout << a;
return 0;
}
我想知道为什么输出值0。我认为如果一个变量没有初始化,它会输出一个垃圾值。
但是,我还记得听到整数的默认值为0,所以我有点困惑。
谢谢
原因是,一个变量得到垃圾值(一个对程序未知/无意义的值)是当有人运行一个程序时,它会被加载到RAM的某个部分。现在这一切都取决于之前设置到某个位置的值,可能是之前存在的其他程序。它只是发生在您的程序已加载到该位置的情况下,该位置恰好在RAM中为0值,这就是您得到的回报。
如果重新启动系统并尝试运行相同的程序,那么您很可能会得到垃圾值。
上述语句对没有被编译器初始化的变量有效。
我认为你不相信给出的答案/评论,也许你可以试试下面的代码:
#include <iostream>
using namespace std;
int main(){
int a,b,c,d,e,f,g,h,i,j;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<e<<endl;
cout<<f<<endl;
cout<<g<<endl;
cout<<h<<endl;
cout<<i<<endl;
cout<<j<<endl;
return 0;
}
C中未初始化函数作用域(即局部)整数的默认行为是不确定的,这很好;然而,如果在定义之前使用该值,它会引入未定义的行为,任何事情都可能发生-恶魔可能会从你的鼻子里飞出来。
本页提供了默认整数行为的示例。
另一方面,所有非局部、线程局部变量,不仅仅是整数,都是零初始化的。但这种情况并未包含在您的原始示例中。
(旁注:通常认为简单地初始化变量并完全避免潜在危险是一种良好做法,尤其是以全局变量的形式。)
在极少数特殊情况下使用全局变量的最佳实践有例外,例如某些嵌入式系统;在启动时或在初始循环迭代期间根据传感器读数初始化值...并且需要在循环范围结束后保留一个值。
为什么打印(或其他一些随机数)?什么是 printing?为什么它不是 (或 )?
我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢
我已经检查过自己,我写了一个这样的程序 我运行了几次程序,结果始终是一样的,零。我在C中尝试过,结果是一样的。 但我的教科书说 如果未初始化函数内定义的变量,则该变量值将保持未定义状态。这意味着该元素具有以前驻留在内存中该位置的任何值。 当程序始终将可用内存位置分配给变量时,这怎么可能?它怎么可能是零以外的东西(我假设默认的可用内存值为零)?
本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的
问题内容: TensorFlow中初始化变量的标准方法是 经过一段时间的学习后,我创建了一组新变量,但是一旦初始化它们,它将重置所有现有变量。目前,解决此问题的方法是保存所需的所有变量,然后在tf.initalize_all_variables调用之后重新应用它们。这有效,但是有点笨拙。我在文档中找不到像这样的东西… 有谁知道初始化未初始化变量的好方法吗? 问题答案: 没有优雅的方法可以枚举图中的