急急急!恳请C语言高手帮我解决小疑问,小生感激不尽。

#include<stdio.h>main(){inti=10,j=0;if(j=0)i++;elsei--;}输出答案为:9这是为什么呀?if(j=0)这是不合法的判断... # include <stdio.h>
main()
{int i=10,j=0;
if(j=0)
i++;
else
i--;
}
输出答案为:9 这是为什么呀?if(j=0)这是不合法的判断条件,但又代表什么意思呢?
展开
 我来答
i_am_coke
2012-01-05
知道答主
回答量:14
采纳率:0%
帮助的人:13.7万
展开全部
if(j=0) 这个错误判断和"j=",没有关系,看的是"="后面的值,你可以换成"j=1"看看,这个错误判断以"="后面的值为判断依据,非0为真,0为假.
追问
如果非0为真,0为假,当换成(j=1)时,输出结果为11,在定义时把0赋给j,那j 不就是假吗?那当if(j=0)时应该为11,当if(j=1)时应该为9才对,怎么两个反过来了???
追答
非0为真: 当换成if(j=2) 即 if (2)  即2!=0 为真 作 i++
0为假: 当换成if(j=0) 即 if (0) 即0==0 为假 作 i--
风z使者
2012-01-05 · TA获得超过1260个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:203万
展开全部
j=0是赋值语句
应该写成j==0
赋值语句作为判断条件的时候是j ,也就是0,假
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
scircle
2012-01-05 · TA获得超过960个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:536万
展开全部
= =是判断语句, = 是赋值语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12b11d8
2012-01-05 · TA获得超过425个赞
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:184万
展开全部
假。 这个判断浯句一开炲就不成立
即if(0)...;没执行所以是9
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-01-05 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.8亿
展开全部
if(j=0)
是赋值操作,不是判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式