如何进行后置自增&预增量都在函数参数中求值?
可能的重复:
c 中的后增量和预增量
未定义的行为和序列点
我想知道为什么会出现这个输出 任何人都可以以正确的方式解释我
#include<stdio.h>
int main() {
int a=5;
printf("%d %d %d",a++,a++,++a);
return 0;
}
这个程序的输出就像
在 LINUX 中 一样 7 6 8
Possible Duplicate:
post and pre increment in c
Undefined Behavior and Sequence Points
here i want to know why this output comes??
Any one Can Explain me All in proper manner
#include<stdio.h>
int main() {
int a=5;
printf("%d %d %d",a++,a++,++a);
return 0;
}
the output of this program is like
In LINUX
7 6 8
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它是未定义的 - 副作用仅保证在序列点处完成。
It's undefined - side effects are only guarantied to be completed at sequence points.
我们不能。这完全取决于编译器对参数求值的顺序。
We can't. This is completely compiler dependent in what order the arguments are evaluated.