读入字符常量中发生的问题
#include <stdio.h>main()
{ int ch;
while(ch=getchar()=='A');
printf("%d\n",ch);
system("PAUSE");
return 0;
}
当输入字符A时,书上的答案是ch的值为0(运行的结果也是这样的). 可是我的理解是:
因为ch=getchar()=='A'这里,ch=getchar()没有再加一个括号变成((ch=getchar())=='A'),所以该先算getchar()=='A'。 那么输入A以后,A是等于A的。那么ch的值不就给赋成了1了吗?为什么结果是0的?我的理解在哪里又错了?
还有,我把程序改动以后,
#include <stdio.h>
main()
{ int ch;
while((ch=getchar())=='A');
printf("%d\n",ch);
system("PAUSE");
return 0;
}
输入A以后,居然打印出来了数字10,这是什么意思?
再把程序改动以后,
#include <stdio.h>
main()
{ char ch;
while((ch=getchar())=='A');
printf("%c\n",ch);
system("PAUSE");
return 0;
}
输入A以后,这回没有任何的结果了。。。 :(
谁可以帮我解释一下这三种情况,谢谢。