c - 这个 printf() 函数如何输出这些值?

标签 c operators

#include<stdio.h>
void main()
{
int i=10;
printf("%d %d %d\n",a,--a,++a); // output  10 10 10

}

这段代码如何给出相同的输出? 这些自增和自减运算符的优先级是什么?

最佳答案

C 像许多语言一样使用 Eager evalution ( https://en.wikipedia.org/wiki/Eager_evaluation )

这意味着 printf 的参数在调用 printf 函数之前被求值。

对于编译器来说,你的代码看起来像

#include<stdio.h>
void main()
{
  int a=10;
  a;
  --a;
  ++a;
  printf("%d %d %d\n",a,a,a); // output  10 10 10
}

关于c - 这个 printf() 函数如何输出这些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36533769/

相关文章:

c - scanf 中的最后一个字符

c - C 无法显示文件内容

python - 覆盖python中的所有运算符

java - Java中的++==是什么?

php - 我可以在 php 中为变量设置逻辑运算符吗

c - 蓝牙 socket 收不到数据包

C 编程 ScanF 多输入一文件

c - 在检查正整数 N 是否为大 N 的 2 次幂时出现错误

c# - 扩展 ? : Operator?

c - C 中的 () 运算符