C语言字符型数据问题

若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是_____while(ch=getchar()=='A'); 为什么ch为0... 若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是_____while(ch=getchar()=='A'); 为什么ch为0 展开
 我来答
明_矾
2011-07-12 · TA获得超过100个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:134万
展开全部
while(ch=getchar()=='A');
这个其实执行了两次,
你输入了A后敲了回车,这时getchar()得到的是字符'A',由于==的优先级高于=
所以getchar()=='A' 先执行,'A' == 'A',这个表达式值为1(真),所以ch=1,这是while中的条件也为1,所以while继续执行。
这是读入的字符是回车符,回车符显然≠'A',所以getchar()=='A' 这个表达式的值为0(假),所以ch=0,这是while里的条件为0了,所以while退出。
所以ch为0
never715
2011-07-12 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:466万
展开全部
=和==的优先级不一样!==的优先级高于=,所以表达式ch=getchar()=='A'相当于ch=(getchar()=='A')
----------------------------------一楼正解!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悉蕙6x
2011-07-12 · TA获得超过202个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:68万
展开全部
式子先判断getchar()=='A'为真或假,真的话将1赋值给ch,假就赋0,因为输入A时为真,ch=1,接着循环,循环到第二次为假,ch=0循环语句就没法执行了,跳出循环语句,最后结果ch为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式