鱼C论坛

 找回密码
 立即注册
查看: 2130|回复: 3

为什么第一给答案不等于8而等于107呢?

[复制链接]
发表于 2012-2-24 14:12:16 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
void main()
{
int a,b=67;
float x, y=8.88;
char cl='k',c2;
a=y;     107?????????????
x=b;   
a=cl;
c2=b;
printf("%d,%f,%d,%c\n",a);
}

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-24 14:12:17 | 显示全部楼层
看分析:
  1. int a,b=67;    //此时a的值为空也可能未知,b的值为67
  2. float x,y=8.88;   //此时x的值也是未知,y的值为8.88
  3. char  cl='k',c2;   //cl的值为k,也等于ASCII的107,c2的值未知
  4. a=y;   //将y的值赋给a,即将8.88赋给a,此时a的值为8.88,y也是8.88
  5. x=b;  //将b的值67赋给x,此时x=67
  6. a=cl;  //将cl的值'k'赋给a,此时a的值变为了字符'k',数值107
  7. c2=b;   //将b的值67赋给c2,此时c2=67
  8. printf("%d",a); //这里将a的值以整数型输出!(但上边a的被赋为字符'k')系统自动将a的值转换为ASCII码后输出107(可以去查ASCII码表哦)
  9. printf("%c",a);  //再加上这一条,输出后比较一下!
  10. //看来你是赋值这块没搞明白,注意程序是从上往下执行的,赋值总是等号右边的值或内容覆盖掉左边原有的内容,不管以前里边是什么,最后的值都是最后一次赋值的结果!
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-24 14:14:04 | 显示全部楼层
哎呀后面掉了几个字母不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-24 15:29:35 | 显示全部楼层
本帖最后由 风扫地 于 2012-2-24 15:30 编辑

a=cl;
你在后面又对a重新赋值了。


'k'的ASCII码值为107

void main()
{
printf("%d ",'k');
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 02:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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