相当弱的问题啊,小白级别的

zhanggc1001 2010-07-01 05:12:30

int i = 1;
int j = 2;
if (i = j) {
printf("equal");
} else {
printf("no equal")
}

这个if判断应该是个复制语句,
可以理解为
i = j;
if (i) {
...
}
else {
...
}
我的问题是在C or C++中是不是非0或者非空的都认为是true啊??
...全文
117 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyp962220587 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lienguo 的回复:]
引用 4 楼 sijingyijun 的回复:
只要非0 系统就判断为true!!
初学吧,加油!
有前途的……

错!还有非空,例如一个空指针也是false
[/Quote]

这个对的 是,我也学习新东西了啊,哈哈哈哈
bicirongpan 2010-07-01
  • 打赏
  • 举报
回复
正解:非零即为真
liutengfeigo 2010-07-01
  • 打赏
  • 举报
回复
C++中是不是非0或者非空的都认为是true啊?
非0是ture.
SuperLampard 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sijingyijun 的回复:]
只要非0 系统就判断为true!!
初学吧,加油!
有前途的……
[/Quote]
错!还有非空,例如一个空指针也是false
zhanggc1001 2010-07-01
  • 打赏
  • 举报
回复
个人理解:
这样代码的可读性就比较差,
纯属个人观点哈,别拍砖!!
sunny_CK 2010-07-01
  • 打赏
  • 举报
回复
是的,还有=和==是不一样的
周靖峰 2010-07-01
  • 打赏
  • 举报
回复
是的.
honemay 2010-07-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhanggc1001 的回复:]
if(i==j)
正常的这么写是知道的
if (i = j)
这样的语法在java不允许的
[/Quote]
JAVA既然不允许?
不懂JAVA
不过我觉得C的这个很好,我很多时候都是在if条件里赋值的!
zhanggc1001 2010-07-01
  • 打赏
  • 举报
回复
if(i==j)
正常的这么写是知道的
if (i = j)
这样的语法在java不允许的
sijingyijun 2010-07-01
  • 打赏
  • 举报
回复
if(i==j)
应该这样写!
如果你写成if(i=j)
相当于if(i),就一定为TRUE了!
aozhi 2010-07-01
  • 打赏
  • 举报
回复
c没有bool型,非0既true。
feifeifei2013 2010-07-01
  • 打赏
  • 举报
回复
if(2)
{
}

翻译成汇编

mov eax,2
test eax,eax
je main+3Eh (412DCEh)

test 指令就是判断,eax是否为空

sijingyijun 2010-07-01
  • 打赏
  • 举报
回复
只要非0 系统就判断为true!!
初学吧,加油!
有前途的……
pengzhixi 2010-07-01
  • 打赏
  • 举报
回复
j=0的时候就为false 了。
konta 2010-07-01
  • 打赏
  • 举报
回复

if (i == j) //not "i = j"

feifeifei2013 2010-07-01
  • 打赏
  • 举报
回复
是的 非0即true

69,371

社区成员

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

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