鱼C论坛

 找回密码
 立即注册
查看: 4422|回复: 2

C语言关于不同类型赋值的一个问题

[复制链接]
发表于 2013-4-3 12:58:03 | 显示全部楼层 |阅读模式
2鱼币
本帖最后由 comethat 于 2013-4-3 13:06 编辑
  1. #include <stdio.h>

  2. void main()
  3. {
  4. int a,b=322;
  5. float x,y=8.88;

  6. char c1='k',c2;
  7. a=y;
  8. x=b;
  9. a=c1;
  10. c2=b;
  11. printf("%d,%f,%d,%c\n",a,x,a,c2);
  12. }
复制代码
为什么a的结果是107,却不是8,。
为什么c2是输出B,是不是322-256=66?

而分开单独写就可以输出8
int a;
float y=8.88;
a=y;
printf("%d\n",a);


最佳答案

查看完整内容

虽然你在第9行把y赋值给a,使得a的值在这里为8,但是你又在第11行把c1赋值给a,导致a的值是字符 ‘k’的ascii值107; 在printf语句里你将c2用%c的形式输出,所以输出ascii码66对应的字母,即字母B
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-3 12:58:04 | 显示全部楼层
虽然你在第9行把y赋值给a,使得a的值在这里为8,但是你又在第11行把c1赋值给a,导致a的值是字符 ‘k’的ascii值107;

在printf语句里你将c2用%c的形式输出,所以输出ascii码66对应的字母,即字母B
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-4-3 13:07:41 | 显示全部楼层
谢谢了 解决了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-4 17:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表