一个if语句内赋值的语法问题

dream17953 2010-06-06 09:07:40
一个句子,if((img=loadimage(“filename”))==0)

这个句子,我有点不理解,img=loadimage(“filename”)是一个赋值语句,loadimage应该是成功返回1,失败返回0, 那么if里边的内容似乎是把这个赋值语句的结果用来进行判断,但我觉得img=loadimage(“filename”)这个句子的结果应该仅仅表示赋值成功与否,而不表示loadimage函数成功与否,也就是赋值语句的值应该永远为1才对,因为loadimage不管成功与否都会返回一个值。
不知道我的解释对不对,请各位指点下,这个句子是课本例子上出的,运行很好。
...全文
386 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wochuailimin 2010-06-06
  • 打赏
  • 举报
回复
img=loadimage(“filename”)这一句是将loadimage()这个方法的返回值赋给img这个变量的,而filename是这个方法的实参,
if((img=loadimage(“filename”))==0)这一句应该是判断img是否等于0,如果是执行if里的操作
xade123 2010-06-06
  • 打赏
  • 举报
回复
不对,发错了


是这样的

img=loadimage(“filename”)
是赋值表达式
if((img=loadimage(“filename”))==0)
是等号表达式,判断是否相等,是返回值1,不是返回0
xade123 2010-06-06
  • 打赏
  • 举报
回复

if((img=loadimage(“filename”))==0)
是赋值表达式
if((img=loadimage(“filename”))==0)
是等号表达式,判断是否相等,是返回值1,不是返回0
a343536 2010-06-06
  • 打赏
  • 举报
回复
学习中。。。
czw999wudi 2010-06-06
  • 打赏
  • 举报
回复
img是一个值
判断img是否等于零
zhaiershuaixu 2010-06-06
  • 打赏
  • 举报
回复
菜鸟来学习。
cao_julians 2010-06-06
  • 打赏
  • 举报
回复
LZ的语法上有些不准确
“我有点不理解,img=loadimage(“filename”)是一个赋值语句”
应该是赋值表达式,赋值表达式的值就是img变量的值
chaoliu1024 2010-06-06
  • 打赏
  • 举报
回复
1楼正解
把loadimage(“filename”)的赋给img,不判断是否成功,只是赋值!然后在用“==”判断是否等于零。
“=”是赋值运算符,“==”是判断运算符
challenge99 2010-06-06
  • 打赏
  • 举报
回复
img = 1 也是一个表达式,表达式就有值, 这个表达式的值是img的值
chaoliu1024 2010-06-06
  • 打赏
  • 举报
回复
这个类似于一个我们经常用的文件打开操作...
if((fp=fopen("文件名","r")) == NULL)

楼主能理解这个,那个也能理解了...
mstlq 2010-06-06
  • 打赏
  • 举报
回复
解释不对……
等号表达式的值不表达赋值成功与否,而是赋值后,等号左边变量的值……

70,020

社区成员

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

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