C语言中 x = 1 || 1 && 0; x等于什么,为什么

qq_37944108 2017-08-31 10:45:39


void main(void)
{
int x, y, z;
x = 1;
y = 1;
z = 0;

x = x || y && z;

printf("%d,%d", x, x&&!y||z);
}

我在vc++ 6.0 测试过,值是1 ,0;
但是很纳闷,逻辑与和逻辑或的优先级是一样的,那么就是从左往右计算,那就是先判断x||y 为(真),在计算刚刚的值&&z 为(假),整条式子不就为假了吗,实在想不懂!大家有知道的,可以一起讨论下;
...全文
2867 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
醉梦清酒 2018-11-22
  • 打赏
  • 举报
回复 1
同级的优先权&&比||的高 ,先1&&0为0,1||0为1,所以x=1,第二个1&&0为0,0||0为0所以输出为1,0
ooolinux 2017-08-31
  • 打赏
  • 举报
回复
C++ 运算符优先级列表 http://blog.csdn.net/guolonghui/article/details/5974579

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧