如何进行后置自增&预增量都在函数参数中求值?

发布于 2024-12-11 10:47:41 字数 498 浏览 0 评论 0原文

可能的重复:
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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

划一舟意中人 2024-12-18 10:47:41

它是未定义的 - 副作用仅保证在序列点处完成。

It's undefined - side effects are only guarantied to be completed at sequence points.

另类 2024-12-18 10:47:41

我们不能。这完全取决于编译器对参数求值的顺序。

We can't. This is completely compiler dependent in what order the arguments are evaluated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文