考虑下面的 C 代码,根据我所了解到的,OR 语句应该评估 printf.但在实际输出中我只看到“XX”。为什么会发生这种情况?
#include<stdio.h>
int main() {
int a;
a = (printf("XX")||printf("YY"));
printf("%d\n",a);
a = (printf("XX")&&printf("YY"));
printf("%d\n",a);
}
输出 -
XX1 XXYY1
最佳答案
即使一个条件为真,OR 运算符输出也为真。在这种情况下,第一个 printf
语句返回 true。因此不需要计算 OR 运算符的第二个操作数。
关于c - 为什么 OR 语句即使两者都为真,也只评估其中之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57941404/