对包含前缀和后缀运算符的 printf() 感到困惑

标签 c programming-languages

<分区>

如果 int var=20 那么怎么办

printf("%d %d %d", var--, ++var, --var); 

执行发生在 C 编程语言中。

最佳答案

这是未定义的行为,因为 var 被多次修改,中间没有序列点。例如,序列点可以是 ;。但是,参数列表中的逗号不会引入序列点,而且操作数的计算顺序是未定义的(您可以说,代码是双重未定义的...)。

关于对包含前缀和后缀运算符的 printf() 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3109475/

相关文章:

programming-languages - 创建源到源翻译器

c++ - 通过LLVM/Clang与MyLanguage Converter进行C++往返

objective-c - Robbiehanson 在 xmpp 框架中的内存泄漏

c - 水的状态(温度程序)- C 编程

programming-languages - 腮腺炎编程检查超时

c - c中的隐式转换和显式转换

programming-languages - Lua 是一种非开发人员可以快速学习的语言吗?

c++ - 如何将 printf xterm 代码转换为 ostringstream?

c - 在 Assembly Works 中如何调用带有大量参数的函数

C套接字编程: recv always fail