c++输出有问题
#include <iostream>using namespace std;
int main()
{
int a, b = 3;
a += b;
cout<< a << b <<endl;
return 0;
}
代码如上 , 本来是想打印 63 的 , 结果出来 43 ...
我也不知道怎么回事{:10_245:} 本帖最后由 jackz007 于 2021-11-21 17:54 编辑
不为 a 赋初值就肯定能得到结果 43?
#include <iostream>
using namespace std;
int main()
{
int a = 1 , b = 3;
a += b;
cout<< a << b <<endl;
return 0;
} 本帖最后由 柿子饼同学 于 2021-11-21 17:59 编辑
jackz007 发表于 2021-11-21 17:52
不为 a 赋初值就肯定能得到结果 43?
啊, 可是它自己出来 43 的
所以 int a, b = 3; 只能给 b 赋值为 3 , a 管不了嘛{:10_277:} 柿子饼同学 发表于 2021-11-21 17:57
啊, 可是它自己出来 43 的
所以 int a, b = 3; 只能给 b 赋值为 3 , a 管不了嘛
a += b
是
a = a + b
的简写形式,所以,a 必须要先赋值,然后才可以使用,否则,结果不确定。 jackz007 发表于 2021-11-21 18:01
是
的简写形式,所以,a 必须要先赋值,然后才可以使用,否则,结果不确定。
所以只能写成 int a, b;
a = b = 3;
嘛 本帖最后由 jackz007 于 2021-11-21 18:23 编辑
柿子饼同学 发表于 2021-11-21 18:06
所以只能写成
嘛
你这样写 a 会被初始化为 3,结果就是 63,只有把 a 初始化成 1 才能得到 43。如果这个还有疑问,那我就不和你讨论了!!! jackz007 发表于 2021-11-21 18:21
你这样写 a 会被初始化为 3,结果就是 63,只有把 a 初始化成 1 才能得到 43。如果这个还有疑 ...
懂了懂了 , 谢谢
页:
[1]