c - 当涉及多个算子时,执行顺序如何确定?

标签 c syntax variable-assignment logical-operators

while (!EOLorEOFfound) {
      int ch == fgetc(stdin);
      EOLorEOFfound = ch == '\n' || ch == EOF;
}

注意:EOLorEOFfound 是 bool 类型。

一位 StackOverFlow 用户就另一个问题给出了这个答案。请参阅此处:

How to determine if fgets stopped before all letters were read?

现在,我一直在困惑最后一行代码中的表达式实际上做了什么。我怀疑这可能是某种形式的三元运算符?

最佳答案

EOLorEOFfound = ch == '\n' || ch == EOF;

相同
EOLorEOFfound = (ch == '\n' || ch == EOF);

即将 bool 表达式的结果赋给变量。这里没有魔法。

关于c - 当涉及多个算子时,执行顺序如何确定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36886762/

相关文章:

c++ - iOS枚举为什么用十六进制而不是十进制?

python - mysql com 语法问题

c++ - 赋值子表达式的求值顺序

在 C 中通过 scanf 复数

c++ - 跨平台内存分配器 sbrk/virtualalloc

syntax - 在 ReasonML 中的最后一个管道之后使用快速管道运算符编译错误

haskell - 带防护功能 : syntax error when using "where"

C++声明自定义类对象使用=赋值初始化的过程是怎样的?

javascript - 简单的 Javascript 时钟变量赋值

c++ - Visual C++ 中的结构定义错误