c - 关于x=y==z的问题

标签 c

我有以下代码:

#include <stdio.h>
int main(void)
{
    int x = 2, y = 6, z = 6;
    x = y == z;
    printf("%d", x);
}

输出= 1

为什么?

最佳答案

因为赋值是从右到左的,并且==的优先级大于=。

它是 x = (y == z)

y == z 为 1。

关于c - 关于x=y==z的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3600465/

相关文章:

c - 如何在不使用 strlen 的情况下找到 C 字符串的长度?

c - 如何从 UART 读取数据

c - 如果我们将一个负整数赋值给一个无符号整数会发生什么

c - 如何将数组的所有元素设置为零或任何相同的值?

c - 实践中的严格别名

C -- 不评估 Switch 中的多个 Scanf 语句

C代码仅在一个项目中工作,不适用于任何新项目(不会写入txt文件)

c - 我在使用 fgetc() 时遇到段错误。我该如何修复它?

c - armcc中是否有关于字节顺序的预定义宏定义

c++ - C/C++ 中的运算符在哪里定义以及它们是如何在这些语言中实现的?