A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

char  c='a';
int number=c;//没有编译错误,这是什么原因呢

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

8 个回复

倒序浏览
因为把a的 ASCII码传给了number。
char 类型的字符 有个对应的 ASCII码。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
char 类型字符在内存中是以一个字节来表示的,从0到255,int 是四个字节来表示,把字符变量赋给整型变量就会默认的将字符变量转换成整型。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
隐式转换
char类型到int,long,double,或decimal类型的可以转换
低类型到高类型的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
  1.             char c = 'a';
  2.             int number = c;
  3.             int num = 97;
  4.             Console.WriteLine(97 == 'a');
  5.             Console.ReadKey();
复制代码
输出结果:Tue
意思就是: 'a' 和 97 是相等的。可以这样理解吗?
另: “a” 是字符串,很多人一开始容易把char和 string 字条串搞混了,

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
孙树迁 发表于 2012-3-26 18:23
输出结果:Tue
意思就是: 'a' 和 97 是相等的。可以这样理解吗?
另: “a” 是字符串,很多人一开始容易 ...

我觉得可以
char c = 'a';
int number = c;
Console.WriteLine(number);
输出的结果为97
回复 使用道具 举报
许前刚 黑马帝 2012-3-26 19:53:07
7#
因为低精度类型的数据和高精度的数据在运算时,低精度会隐式转换到高精度类型后再运算。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
方辉 中级黑马 2012-3-26 19:53:08
8#
输入的是ASCII码.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
张恒 中级黑马 2012-3-27 10:18:03
9#
你写的代码属于类型转换的问题,不同数据类型之间有两种类型转换。
1强制类型转换
2隐式类型转换
你写的代码是隐式类型转换。 隐式类型转换的前提是要转换的数据类型的字节一定要比转换后的数据类型的字节小。好比不能把一列火车装在货车上。反之即可。
char类型的值,在ASCII表中找到对应的整数值。所以能把char类型类型的值可以赋给整数类型的变量。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马