小白菜提问题

来源:4-10 循环结构之三种循环比较

kakapoUW

2017-10-11 09:12

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

写回答 关注

1回答

  • 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就变成了一个字符串,隐式转换

    kakapo...

    哇塞,厉害呢哎

    2017-10-12 00:16:38

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926027 学习 · 20793 问题

查看课程

相似问题