关于“!c”的进一步提问---弱智题。才知道三分的概念,来撒了,哈哈

thinkmax 2010-01-21 09:54:40
刚才问了一个 int c = 3, !c = 什么的问题。得到了答案:所有不为0的加上非,都为假即0。

我想问的是:
1.是不是所有为0的加上非,都为真,即1啊?
2. int m = 3, k = 2;
a = 2 * k != m;
“a = 2 * k != !m;”这个式子怎么理解啊?从右开始算,非m不等于2*k?然后把其值赋给a?
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hkl52xj 2010-01-21
  • 打赏
  • 举报
回复
!int !String ??没弄懂。。得试验。
柯本 2010-01-21
  • 打赏
  • 举报
回复
1.是
2.无论是
a = 2 * k != m;
还是
a = 2 * k != !m;
a的结果都为1
飞天御剑流 2010-01-21
  • 打赏
  • 举报
回复
true被规定为1,false被规定为0。在需要的时候,标量类型可以被隐式转换为bool,在这种情况下,所有非0值才被视为true。

对于a = 2 * k != m,先通过优先级及结合性划分子表达式,*优先级最高,2 * k是一个子表达式,!=比=高,因此2 * k != m又是一个子表达式,于是此表达式的结果为2 * 2 = 4, 4 != 3,为真,值为1,因此把1赋予a。
罗耗子 2010-01-21
  • 打赏
  • 举报
回复
a = ((2 * k) != m);

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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