【发布时间】:2021-06-15 01:48:38
【问题描述】:
我是编程新手,所以请尽可能写出基本的答案。我用 C++ 做了一个简单的计算器。它应该添加 2 个数字,但由于某种原因,无论数字如何,输出始终为 16。谁可以给我解释一下这个?这是代码:
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
int sum = a + b;
cout << "Enter a number: ";
cin >> a;
cout << "Enter a second number: ";
cin >> b;
cout << sum;
return 0;
}
但是,当我这样做时(首先创建int sum,然后再分配它),它可以工作:
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
int sum;
cout << "Enter a number: ";
cin >> a;
cout << "Enter a second number: ";
cin >> b;
sum = a + b;
cout << sum;
return 0;
}
【问题讨论】:
-
订单很重要,正如您所注意到的。语句从上到下执行。因此,当您执行
int sum = a + b时,a和b的值是indeterminate(使用它们会导致未定义的行为) -
int a; int b;int sum = a + b;-- C++ 程序自上而下工作。它不会将a + b存储为稍后查找的公式。 -
int sum = a + b;当a和b还没有值时,是未定义的行为。不确定你会发生什么。
标签: c++ codeblocks calculator