while((a=getchar())!='\n')中括上a=getchar()括号的作用?

#include"stdio.h"main(){chara;intz=0,x=0,c=0,v=0;while((a=getchar())!='\n'){if(a>='a'... #include"stdio.h"
main(){
char a;
int z=0,x=0,c=0,v=0;
while((a=getchar())!='\n')
{
if(a>='a'&&a<='z'||a>='A'&&a<='Z')
z++;
else if(a==' ')
x++;
else if(a>='0'&&a<='9')
c++;
else
v++;
}
printf("zm=%d,kg=%d,sz=%d,qt=%d",z,x,c,v);
}
再写这段编码的时候不知道括上a=getchar的括号的作用
展开
 我来答
heptnaol
2019-11-26 · TA获得超过7263个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1840万
展开全部

a=getchar()!='\n',先调用getchar,等待你输入,输入后如果你输入的不是回车,a为true,否则a为false,这是a是一个布尔值

加上括号后,a保存了你输入的那个字符。

从后文看,还要把a和空格,'0' '9'等进行比较,因此需要的是加粗那一行的行为,即a保存了一个字符,而不是一个布尔值。

这个行为不同的原因是运算符优先级带来的,== `=这些逻辑符,比=赋值要高,是优先计算,也就是说你不加括号,等同于后面加括号:即

a=getchar()!='\n' 

等价于

a=(getchar()!='\n'),这显然不是你想要的结果。

gwt176v
2019-11-26 · TA获得超过135个赞
知道小有建树答主
回答量:240
采纳率:58%
帮助的人:93.7万
展开全部
运算符的优先级是!=比=高。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式