我用C++编写了一个小程序,它应该从用户那里得到2个整数,然后打印出这两个整数的总和.
#includeint main(){ int a; int b; int c = a + b; std::cin >> a; std::cin >> b; std::cout << c; return 0; }
但每次我运行程序时,我都可以输入两个整数,但结果答案总是65538
:
> 1 > 1 65538
我该如何解决?
放置声明
int c = a + b;
在vstatements之后
std::cin >> a; std::cin >> b;
首先,您需要输入变量a和b的值,并且只有在将变量存储在变量c中之后才能输入.
该声明
int c = a + b;
不是关于价值观之间关系的断言.
这只是一个需要完成的计算,计算c
从(假设)已知值a
和b
.
因此,把它放在后输入语句.
要获得有关使用具有不确定值(未初始化)的变量的警告,使用Visual C++使用选项/W4
,使用g ++使用选项-Wall
以及优化选项(如just)-O
.
g ++行为的示例:
[H:\dev\test\0107] > g++ foo.cpp [H:\dev\test\0107] > g++ -Wall foo.cpp [H:\dev\test\0107] > g++ -Wall -O foo.cpp foo.cpp: In function 'int main()': foo.cpp:7:15: warning: 'a' is used uninitialized in this function [-Wuninitialized] int c = a + b; ^ foo.cpp:7:15: warning: 'b' is used uninitialized in this function [-Wuninitialized] [H:\dev\test\0107] > _