#include <stdio.h>
int main()
{
int i=4;
printf("%d,%d",++i,i++);
return 0;
}
输出为6,4
#include <stdio.h>
int main()
{
int i=4;
printf("%d,%d",++i,i);
return 0;
}
输出为5,5
#include <stdio.h>
int main()
{
int i=4;
printf("%d,%d",++i,i--);
return 0;
}
输出为4,4
谁能告诉我这些是怎么运算出来的?
想知道为什么出这样的结果就去看汇编,gcc -S 或 objdump -d。
不过初学阶段你完全不用考虑这么多。就像LS说的,这个完全是C标准未定义的行为,不同的平台可能有不同的结果。
。。。。谢谢,那我还是先把这个放下吧。
。。。。。。我就是纯粹好奇,个人兴趣,学C语言不搞彻底总感觉不舒服。但还是谢谢你。
这种问题是不需要理解的。(这是undefined,和编译器实现相关的)
如果你们老师考这种问题,你就直接写上错误答案就行了。