c - 自增自减运算符

标签 c operators

<分区>

代码如下

#include<stdio.h>

int main()
{

    int i=5;

    printf("%d%d",++i,++i);
}

我不明白,为什么输出是77?

最佳答案

++ii++ 是有副作用的表达式。在同一个表达式中使用其中两个会导致未定义的行为。基本上,一切顺利。

具体来说,我猜编译器说你想递增 i 两次然后使用结果,所以它计算 ++i 两次,结果是 7,然后将其发送到 printf

关于c - 自增自减运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22370583/

相关文章:

c - 无论标志如何,来自二进制的 fread 返回相同

c - C中Blowfish加密的适配问题

c++ - 是否可以在 C++ 中声明 operator= private 并同时由编译器合成

c# - 对类类型操作数使用 == 运算符

c - 有什么理由分配-0?

c - 如何用 C 语言实现 MATLAB 低通滤波器

python - 嵌入python+numpy时延迟加载python DLL

sql - 如何查询 PostgreSQL 9.5 JSONB 列中是否存在某个键?

ruby - [*a..b] 在 Ruby 中的语法是什么意思?

java按位运算符和相等字符;复合运算符