问答详情
源自:4-10 循环结构之三种循环比较

小白菜提问题

#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 求解释

提问者:kakapoUW 2017-10-11 09:12

个回答

  • qq_莫非
    2017-10-11 12:13:46
    已采纳

    因为x是float类型的,322赋值给x,就会自动变成float类型,就是322.000000

    a首先被赋值y,但是随后赋值K给a,就将前面的赋值覆盖掉了,然后因为a是int类型,而k是字符类型,实际输出的就是字母k的ASCII码(美国信息交换标准代码)。

    c2是字符串类型,int类型的322赋值给c2的时候322就变成了一个字符串,隐式转换