黑马程序员技术交流社区

标题: 谁帮忙解释下为什么char型可以直接赋值给int型 [打印本页]

作者: 何智杰    时间: 2012-3-26 16:16
标题: 谁帮忙解释下为什么char型可以直接赋值给int型
char  c='a';
int number=c;//没有编译错误,这是什么原因呢
作者: 方杰    时间: 2012-3-26 16:26
因为把a的 ASCII码传给了number。
char 类型的字符 有个对应的 ASCII码。
作者: 张学良    时间: 2012-3-26 16:26
char 类型字符在内存中是以一个字节来表示的,从0到255,int 是四个字节来表示,把字符变量赋给整型变量就会默认的将字符变量转换成整型。
作者: 李志祥    时间: 2012-3-26 17:05
隐式转换
char类型到int,long,double,或decimal类型的可以转换
低类型到高类型的
作者: 孙树迁    时间: 2012-3-26 18:23
  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 字条串搞混了,
作者: 李志祥    时间: 2012-3-26 18:42
孙树迁 发表于 2012-3-26 18:23
输出结果:Tue
意思就是: 'a' 和 97 是相等的。可以这样理解吗?
另: “a” 是字符串,很多人一开始容易 ...

我觉得可以
char c = 'a';
int number = c;
Console.WriteLine(number);
输出的结果为97

作者: 许前刚    时间: 2012-3-26 19:53
因为低精度类型的数据和高精度的数据在运算时,低精度会隐式转换到高精度类型后再运算。
作者: 方辉    时间: 2012-3-26 19:53
输入的是ASCII码.
作者: 张恒    时间: 2012-3-27 10:18
你写的代码属于类型转换的问题,不同数据类型之间有两种类型转换。
1强制类型转换
2隐式类型转换
你写的代码是隐式类型转换。 隐式类型转换的前提是要转换的数据类型的字节一定要比转换后的数据类型的字节小。好比不能把一列火车装在货车上。反之即可。
char类型的值,在ASCII表中找到对应的整数值。所以能把char类型类型的值可以赋给整数类型的变量。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2