早教吧 育儿知识 作业答案 考试题库 百科 知识分享

if((x=y)=0)这个语句为什么和if(x==y)相等啊?今天看C陷阱与缺陷看到的。if((x=y)=0)这个语句为什么和if(x==y)相等啊?我原本以为((x=y)=0)是将Y的值赋值给X然后比较是否等于0后来问了下群

题目详情
if((x = y) = 0)这个语句为什么和if(x==y)相等啊?
今天看C陷阱与缺陷看到的。
if((x = y) = 0)这个语句为什么和if(x==y)相等啊?
我原本以为((x = y) = 0)是将Y的值赋值给X 然后比较是否等于0
后来问了下群里的朋友(x=y)会返回一个值。
囧 学C一年多了 才发现竟然不知道这个。
▼优质解答
答案和解析
(x=y)会返回一个值,这个值就是y的值.
如果y的值为0,则if((x = y) != 0)这个语句和if(x==y)不等价,只有当y的值不为0时,if((x = y) != 0)这个语句才和if(x==y)等价.
其实也不能完全等价!
还有,x、y的值本来就不相等,这两个语句是不同的!