【发布时间】:2020-01-16 09:06:08
【问题描述】:
考虑以下 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
【问题讨论】:
-
也就是所谓的短路求值,如果第一个操作数为真,则整个运算也为真,所以不需要对第二个操作数求值
-
@EduardoPascualAseff 知道了!我现在该怎么办?删除问题?
-
@Agile_Eagle 做你想做的事
标签: c conditional-statements boolean-logic