c2一直没做任何操作,为什么输出字符型从小写字母b变成大写字母B了啊
```c
#include "stdio.h"
void main()
{
int a,b=322;
float x,y=8.88;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d\n%f\n%d\n%c\n",a,x,a,c2);
}
```
是这样的,程序里有c2=b,就是给字符变量c2赋值为322,但是而字符数据类型为8位,而322的二进制为:1 0100 0010 。因为字符变量只能存储8位,然后这个字符变量的值就被赋值为这个322对应的二进制的后面8位:0100 0010 。这个二进制对应的十进制是66,用字符打印就是字符'B',所以c2被打印为'B‘.
在最后,你将c2赋值为b,所以导致c2的值改变了
c2='b'才是输出小写字母b