c - 关系运算符和运算符的优先级
问题描述
我用 C 语言执行了一个代码,但是我无法理解它的输出。
#include <stdio.h>
int main()
{
int a=5;
int b= ++a + 0!=0;
printf("%d %d",++a, b);
return 0;
}
上述程序的输出是
7 1
我无法理解为什么会这样。
解决方案
操作顺序导致这被视为:
int b = (((++a) + 0) != 0);
所以:
int b = (6 != 0);
6 不是 0,所以它的值为 true aka 1。
int b = 1;
推荐阅读
- python - 如何使用 Python 将文件夹添加到 Windows PATH?
- r - 在 ggplot 图例中手动定位标签
- java - @After 和 @AfterStep 的黄瓜依赖关系是什么?
- c# - 当我尝试存根重载的构造函数时,NSubstitute 崩溃
- javascript - 带有链接的多个模式
- php - Laravel 加入最新的 pressureMap 入口
- drag-and-drop - Flutter / FireStore 是否有“正确”的类或方法来重新排序从 Firestore 数据库创建的 ListTiles
- android - opencv3.3.0:未定义对 cv::imwrite 的引用 - android
- php - 如何在codeigniter中访问stdclass对象内的stdclass对象
- visual-studio - devenv 和 msdev 命令在 Windows Server 2016\2012 上是否兼容?