- 论坛徽章:
- 0
|
原帖由 anank 于 2007-10-19 02:58 发表 ![]()
1> 原来一提到char我就想到'A', 'B', 'C'等字符,这是十分不对的
例如:char c ;
看到这句话,不应该先联想到c是一个字符(例如:'a', 'b', 'c'等)
应该想到它最本质就是8bit表示的一个字节
2> 所谓signed char 和 unsigned char 其实是相对运算而说的,已经脱离了我们字面含义“字符”(例如:'a','b'等)
其实和signed int 和 unsigned int 一样,都是用来计算的,只是省些空间
3> 字符('a', 'b', 'c'等) 和 char 的关系
1> 字符('a', 'b', 'c'等) 其实 只是 char 类型 一个子集,这个子集是叫做字符集
2> 从本质上来说,字符('a', 'b', 'c'等)本质上也是一个整数,只是字符代表的值是0~127
令附一问题:
EOF是字符吗?
如果是 (字符的范围是:0~127,矛盾)
1)就是一个字节。在经典C书里,有“整型”一词,是char、int、long等的统称。
2)是对整数而言。signed char是整数-128~127,unsigned char是整数0~255。
3)这样说好像不妥。是char的两个用处:当字符用和当单字节整数用。原始的ASCII标准(本来是通讯行业的标准),定义的字符码值是只有0~127。但是,在引入计算机领域后,在早期就已扩展为0~255。char允许最高位为1的字符。
另)ASCII在0~31及127共33个码值用作控制符。除少数几个是在通讯里定义的,多数是计算机定义的,譬如EOF。但是,好像没完全统一。 |
|