【发布时间】:2013-08-18 06:48:51
【问题描述】:
#include <stdio.h>
main()
{
int a=1;
printf("%d %d %d %d %d\n",++a,a++,++a,++a,a++);
a=1;
printf("%d %d %d %d %d",a,a++,a,++a,a);
}
当我运行它时,它会给出以下输出。
6 4 6 6 1
3 2 3 3 3
请解释一下代码。
【问题讨论】:
-
听起来像是功课。
-
我是C语言新手...请解释一下代码..这不是功课...
-
@user1521160 解释需要背后的定义。这里没有明确的行为。每个函数参数项的表达式求值顺序是未定义的,因此行为也没有定义。 请参阅上面的第一条评论。。当你运行这段代码时,它很容易在你的 DVD 驱动器中产生一种新的细菌。因此 undefined. 的性质
-
除了阅读 WhozCraig 的链接之外,您可能还应该阅读运算符优先级和关联性 - 您已将它们添加为标签,但它们与此代码无关。
标签: c operator-keyword operator-precedence associativity