c程序未显示正确的年龄

时间:2016-06-23 03:29:14

标签: c

为什么我的C程序没有显示正确的年龄? im with codeblock with stock compiler。它一直显示50.我迷失了为什么会这样。我也在这里试了http://www.tutorialspoint.com/compile_c_online.php。它显示年龄为零。

A = .false.
B = .true.

3 个答案:

答案 0 :(得分:4)

// change the order

currentYear = 2016;
birthYear = 2000;
age = currentYear - birthYear;

<强>结论

  1. 未初始化的自动变量位于不确定阶段中,因此您获得了年龄的非敏感值。
  2. 此外,表达式通常按照它们在代码中出现的顺序进行评估。从逻辑上讲,将age = currentYear - birthYear;放在最后是有意义的。
  3. <强>参考

    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