为了账号安全,请及时绑定邮箱和手机立即绑定

小白菜提问题

#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 回答

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

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

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

0 回复 有任何疑惑可以回复我~
#1

kakapoUW 提问者

哇塞,厉害呢哎
2017-10-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

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

进入课程

小白菜提问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信