这两个bool函数有什么区别

foggotwang 2006-11-24 03:58:13
int x=3,y=-4,z=5;
bool n,m;
n=!(x>y)+(y!=z);
m=(x+y)&&(y-z);
我把n改为n=(x>y)+(y!=z);
没了前面的!,电脑显示两个都是ture,
这是为什么呢,有跟没有为什么没有区别
...全文
89 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
foggotwang 2006-11-24
  • 打赏
  • 举报
回复
不过chai君解释得很详细,感动中
foggotwang 2006-11-24
  • 打赏
  • 举报
回复
楼上的,我本来以为0+1和1+1是数字电路里的0,1关系,就是+是或的意思,然后·是与的意思啊。原来不是吗。
chai2010 2006-11-24
  • 打赏
  • 举报
回复
int x=3,y=-4,z=5;
bool n,m;
n=!(x>y)+(y!=z);
m=(x+y)&&(y-z);
我把n改为n=(x>y)+(y!=z);
没了前面的!,电脑显示两个都是ture,
================

!(x>y) -> !(true) -> false -> 0 // 你去掉!,这里为:true -> 1
(y!=z) -> true -> 1
0 + 1 -> 1 -> true // 去掉!, 这里为:1+1 -> 2 -> true
so: n == true

(x+y) -> -1 -> true
(y-z) -> -9 -> true
true&&true -> true
so: m == true
shawnwan 2006-11-24
  • 打赏
  • 举报
回复
LZ的写法好怪哦,呵呵
n=!(x>y)+(y!=z);
一定是1啦
LZ以为是搜索引擎啊,把+ 处理成 或
foggotwang 2006-11-24
  • 打赏
  • 举报
回复
哦,原来如此,谢谢
KUCHIBUE 2006-11-24
  • 打赏
  • 举报
回复
因为 y!=z 始终都是 1,所以无论 0+1还是1+1都是true
owlling 2006-11-24
  • 打赏
  • 举报
回复
n=!(x>y)+(y!=z); ???加起来做什么?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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