#include <stdio.h>
int main(){
int a,b=322;
float x,y=8.88f;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);//x=322.00000,a=107,c2=322
return 0;
}
为什么x=322.00000,a=107,c2=322 求解释
因为x是float类型的,322赋值给x,就会自动变成float类型,就是322.000000
a首先被赋值y,但是随后赋值K给a,就将前面的赋值覆盖掉了,然后因为a是int类型,而k是字符类型,实际输出的就是字母k的ASCII码(美国信息交换标准代码)。
c2是字符串类型,int类型的322赋值给c2的时候322就变成了一个字符串,隐式转换