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

为什么我的变量返回一个值,而我还没有将其设置为任何值?[重复]

章心水
2023-03-14

我正在尝试学习C,特别是如何声明和初始化变量。我写了这段代码,我不知道为什么变量c给出了一个我还没有分配的值。

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World!\n";

    int a, b;
    a = 1;
    b = 2;
    int d(4);
    int result;
    auto num = b;
    decltype(b) c;

    result = a + b - d;
    cout << c;
}

输出是-2,但我没有状态c=-2任何地方!

共有2个答案

阳建弼
2023-03-14

在C/C语言中,函数中声明的值代表cpu堆栈上主存的一些字节。这些字节通常是脏的,需要初始化。如果不这样做,这些值就是未定义的。你总是得到“-2”只是巧合。

萧宣
2023-03-14

如果您没有初始化变量,它包含垃圾值。

 类似资料:
  • 我正在构建一个gradebook来存储学生和教师,每个学生和教师都有一个唯一的ID,以及他们各自在Student和Teacher对象的ArrayList中注册或教学的类。我有文件夹路径“j:/compsci/类/”,为每个类存储一个文本文件。 文本文件格式: 第1行:班级名称、教师ID、期间、荣誉?、班级ID 第2行:班级中每个学生的学生ID(用逗号分隔)。 在这里,我初始化了每个学生正在接受的所

  • 我真的不明白二进制系统是怎么工作的,有人能解释一下为什么当我把它从长到短转换时,它会从正变为负吗? 输出:-32768

  • 我不太明白用函数返回值和只在函数中操作全局变量之间的区别。我读过的大多数指南和书籍似乎都鼓励使用前者,而不是后者。 例如,这里有两个Python代码块(据我所知)做同样的事情: 当然,第一个例子看起来更简洁明了,但是两者得到了相同的结果;他们得到了一个值为6的变量。那么有理由使用第一个例子而不是第二个例子吗?

  • 问题内容: public class ReturnTest { public static void main(String[] args) { ReturnTest rt = new ReturnTest(); rt.show(); } 在上面的代码中,该show()方法返回一个String未被 任何变量捕获的值。编译器和JVM均不会引发任何警告, 错误或异常。对于原始返回类型也是如此。 为什么

  • 我的类中有一个静态变量,我在cpp文件中将其实例化为值1000。 cpp文件的代码。 当我打印容器对象的ID值时,它们不断递增。 我的问题是,当我创建一个新对象时,我将静态变量实例化为值0f1000,那么为什么它会随着创建的每个对象不断递增呢?

  • 我试图写一个程序,本质上评估一个5卡扑克手,是用户生成的。程序的一部分是用户可以选择一个变量来随机改变。问题在于为我的一个实例变量设置值,现在,我的setCards、getCards和changeOne方法是: 在另一个类中,我使用: 我不知道为什么,但是每当我尝试使用changeOne方法时,总是给我一个错误:线程“main”java.lang.StringIndexOutOfBoundsExc