关于短路求值中||逻辑关系词赋值的问题
#include <stdio.h>int main()
{
int a=3,b=3;
(a=3)||(b=5);
printf("a=%d,b=%d\n",a,b);
(a=1)||(b=5);
printf("a=%d,b=%d\n",a,b);
return 0;
}
为什么||左边不论为真还是为假,b都停止赋值?而&&左边为真的话,右边会继续赋值。感谢答复!
这个例子 不正确应该这样#include <stdio.h>
int main()
{
int a=3,b=3;
(a=3)||(b=5);
printf("a=%d,b=%d\n",a,b);
(a=0)||(b=5);
printf("a=%d,b=%d\n",a,b);
return 0;
}
或的话是左边真值就不看右边了
并的话是左边假值就不看右边了 wp231957 发表于 2021-8-2 14:17
这个例子 不正确应该这样
或的话是左边真值就不看右边了
并的话是左边假值就不看右边了
谢谢
页:
[1]