为什么我的C程序没有显示正确的年龄? im with codeblock with stock compiler。它一直显示50.我迷失了为什么会这样。我也在这里试了http://www.tutorialspoint.com/compile_c_online.php。它显示年龄为零。
A = .false.
B = .true.
答案 0 :(得分:4)
// change the order
currentYear = 2016;
birthYear = 2000;
age = currentYear - birthYear;
<强>结论强>
age = currentYear - birthYear;
放在最后是有意义的。 <强>参考强>
ISO / IEC 9899:201x 6.79-&gt; 10
如果未初始化具有自动存储持续时间的对象 显然,它的价值是不确定的。
答案 1 :(得分:2)
重新排序
age = currentYear - birthYear;
currentYear = 2016;
birthYear = 2000;
到
currentYear = 2016;
birthYear = 2000;
age = currentYear - birthYear;
你首先得到2个未初始化的变量的差异(这是不好的,因为结果是未定义的),然后才设置两年变量。
答案 2 :(得分:0)
因为你减去了未分配的变量。在将值分配给age = currentYear - birthYear;
和currentYear
之后,您应该birthYear
。