想请你帮我讲讲字符型赋予整型是怎样的转变?谢谢!

如题所述

第一种情况,给整型变量赋值字符型数据,例如
int a = 'c';
这种情况会将字符c的ASCII编码值也就是整数99赋值给a

第二种情况,给字符型变量赋值整型数据,例如
char c = 99;
这种情况就是把整数99赋值给c,如果用printf("%c\n", c)来打印c的话,会得到一个字符c

最后,说明一下,字符型其实就是一个取值范围更小的整型,它们的实质都是整数,char默认是1个字节的整数,32位操作系统下,int是默认4个字节的整数,就这么点区别,只不过在打印的时候%c和%d体现出来的差别有些不一样罢了。追问

那int b=322;然后char c=b ;printf("%c",c)输出的为什么是B,B对应的ASCII不是66么?

追答

对于这种越界以后的数据,就要看编译器是怎么处理的了,你把数值转化为二进制就知道了

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-29
我再补充句好了,C语言内部实际只有两种数值类型,一是整数(分为char/short/int/long),二是浮点数(分为float/double),内部根本就没有字符型这个概念.单个的字符就是一字节的整型里面存字符的ASC码,字符串就是整型数组再加个结束符0.
字符和字符串是为了人用的方便弄出来的,机器内部根本不认,所以字符就是个取值范围很小的整形,两者是可以互换的.
第2个回答  2012-11-29
字符型常量本质上就是整型,只是字符型常被用来存储字符,故定义了一个新变量,叫字符型。由于本质相同,所以可以给一个字符型直接赋予整型常量,而且可以以整型%d的形式输出字符型。它们的区别只在于,整型是4个字节存储(依系统而异,有的是2个),而字符型是1个字节,所以整型包括范围远远大于字符型的范围。因此,这两个没什么区别,只是范围不一样。可继续提问。手机纯手打,望采纳。
相似回答