c - C 程序的输出是什么?为什么?

标签 c

#include <stdio.h>

int main()
{
    int p=10,q=20,r;
    if(r = p = 5 || q > 20)
     printf("%d",r);
     else
      printf("No output");

    return 0;
}

输出是1但是怎么办? 请解释一下

最佳答案

Precedence 。更清楚地说:

if(r = p = 5 || q > 20)

相同
if(r = p = (5 || q > 20))

5 为真,因此 bool 表达式的计算结果为 1,然后将其赋值给 r

关于c - C 程序的输出是什么?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57208499/

相关文章:

c - 分配通过pthread计算的值

c - C 中 pthread 的竞争条件

c - 如何用c写一个json文件

c - printf 的意外输出

c - 为什么需要左值作为增量操作数错误?

c - i = (i,++i, 1) + 1; 是什么意思?做?

在c中调用外部程序似乎不起作用(空格错误)

c - GtkWidget* 从函数返回导致段错误

c++ - 反斜杠后是否允许空格以继续一行(在 C/C++ 中)

c - 安装 r2dec 时如何修复 "r_cons.h/r_types.h:no such file or directory"