关于一个表达式!

pan666 2004-10-30 05:22:27
请问各位以下这个表达式的功能是什么:
if((i=!i)!=0)


谢谢!
...全文
124 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingdingjay 2004-11-01
  • 打赏
  • 举报
回复
siweioaid(以了) 说的对.
很简单,其实就是判断if语句里面表达式是真是假,
(i=!i)!=0是假的.
0909424 2004-11-01
  • 打赏
  • 举报
回复
uow30(小U)说的对了
  • 打赏
  • 举报
回复
if(false)
UP5 2004-11-01
  • 打赏
  • 举报
回复
简单嘛
意思就是将
i的逻辑非与0比较啊
fallhunter 2004-10-31
  • 打赏
  • 举报
回复

道歉,呵呵,错了,是逻辑非
chenjun716 2004-10-31
  • 打赏
  • 举报
回复
将i的值取逻辑非后重新赋给i,然后判断它是否不等于0
uow30 2004-10-30
  • 打赏
  • 举报
回复
这个表达式的功能就是先将i取逻辑非(i为0则!i等于1,i不为0则!i等于0),并将结果自赋给i,并判断此时i的值是否为0,这个表达式相当于
if ( i=!i )
或者
i = !i;
if ( i )

不同意 fallhunter(不乖) 的说法,按位取反的运算符是 ~ ,而不是 ! .
fallhunter 2004-10-30
  • 打赏
  • 举报
回复
if((i=!i)!=0)

!i // i按位取反
i = !i // i按位取反后赋给i
(i=!i)!=0 // ...

.....

累了
dawuzj 2004-10-30
  • 打赏
  • 举报
回复
怎么赋?

能举两个例子吗?
ninansky 2004-10-30
  • 打赏
  • 举报
回复
如果在程序的执行过程中不须要改变i的值的话
可以直接使用
if(i==0)
ToWeightAnchor 2004-10-30
  • 打赏
  • 举报
回复
这是一个很简单的问题啊!
李马 2004-10-30
  • 打赏
  • 举报
回复
原表达式还兼有一个赋值功能
newegg2002 2004-10-30
  • 打赏
  • 举报
回复
为什么这么复杂?
这和
if(i==0)
有区别吗?
@_@
smalllixin 2004-10-30
  • 打赏
  • 举报
回复
楼上说得没错, 将!i付给i如果i!=0 ……
SnakeYangNan 2004-10-30
  • 打赏
  • 举报
回复
晕啊,这种表达式也写的出来。只有在考试(如软考)中才有吧
李马 2004-10-30
  • 打赏
  • 举报
回复
将i的值取逻辑非后重新赋给i,然后判断它是否不等于0。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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