C语言问题:为什么这个值为1

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:51:25
#include <stdio.h>
main()
{ int ch;
while (ch=getchar()=='A');
printf("%d",ch);
}

如果是

#include <stdio.h>
main()
{ int ch;
ch=getchar()=='A';
printf("%d",ch);
}

ch的值是1,这个我能明白,可是为什么加了while就变成了0;

while (ch=getchar()=='A'); getchar()=='A'的结果0的时候循环退出,此时当然ch是为0的了.

因为"=="运算符比赋值运算符高"=",改成这样也可以while((ch=getchar())=='A');//加括号后先赋值后比较,另外getchar()函数会接收后面的回车符,所以单输入A也会显示 10

逻辑运算“==”“<=”“!=”等等,
真则“非零”,假则“零”
while()括号里面的是逻辑判断