c - || 运算符对++x 的影响

标签 c

#include<stdio.h>
int main()
{
   int i=0, k=0, m;
   m = ++i || ++k;
   printf("%d, %d, %d\n", i, k, m);
   return 0;
 }

返回

1,0,1

为什么 k = 0 而不是 1? || 运算符对++k 有何影响? 谢谢!

示例:https://ideone.com/Fjsbii

最佳答案

|| OR 中,如果第一个条件为真,则不会检查第二个条件。(它将跳过第二个条件)。

作为

m = ++i || ++k;

++i 之后的这个条件下,i 的值将变为 1,因为第一个条件为 true >,所以它会跳过第二个条件。所以++k操作不会被执行。
因此,k 将保持为 0

与使用 && 相同,并且第一个条件为 false 它将跳过第二个条件。结果将为0(假)。

关于c - || 运算符对++x 的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29942414/

相关文章:

c - valgrind 显示内存泄漏。我该如何阻止泄漏?

c - 为什么在 C 中使用 `sigsetjmp` 而不是 `setjmp` 函数?

CppUtest示例链接错误

c - 调度源阅读器 - 如何检测文件结尾?

c - 找出当前平台上最大的原生整数类型

c - c 中的主要函数 - 程序终止成功或失败

c - 生成随机位 - C rand() 中缺乏随机性

c - 转换 void * 指针不安全吗?

c - gdb 保留的地址范围?

c++ - 用于在 header 更改时重新编译的简单 C 项目的示例 makefile