C-while(ch=getchar()=='A');ch为0的问题

朋友问题,经过百度,知道了其中的原因。记录一下。
代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int ch;
while(ch = getchar() == 'A');
printf("%d\n",ch);
return 0;
}
输出结果:0
解释:
= 为赋值语句,优先级低
== 为比较语句,优先级比较高
while一直循环到不满足条件(ch=0)时,才会跳出循环
printf语句在while循环之后,没有在其循环体中
getchar会获取A和回车符