字符char,虽然存储的是字幕和标点符号,但技术上的实现确是整数类型。
有两种原因:
1. 计算机内部不可能存储字母,所有的都是二进制数据。
2. 文本文件结束标志符EOF,经常被定义为整数-1。文本肯定都是字母和标点组成。
标准ascⅡ码范围从0到127,用8位的整数来表示足够了,char类型应运而生。
后来计算机发展,为了能表示全世界所有语言的字母或标点,unicode标准诞生。
这个平台下的char类型,就不是8位了,需要16位甚至32位才够装满这些信息。
标准c语言,讲的都是acsⅡ的范畴。
除了字符外,char还能表示小的整数,为了区分,c语言标准提出:
1. 使用signed char(-128到127),或者unsigned char (0到255)来处理小整数。
2. 使用char 来处理字符。
ascⅡ字符集中有不少控制字符,因为历史原因,c语言仅支持一部分。其他的使用会出现乱码。
\a | 响铃 |
\b | 退格 |
\t | 水平制表 |
\n | 回车换行 |
\v | 垂直制表 |
\f | 换页符 |
\r | 回车 |
个人实测:
\a 没听见任何声音,不知道是否虚拟机原因。
\b 在ubuntu屏幕中仅仅移动光标位置,不删除字符。
\t 在ubuntu屏幕中光标水平移动到第9列。
\v 在ubuntu屏幕中垂直移动一行,相当于回车换行。
\r 在ubuntu屏幕中把光标移到这行开头
\f 在ubuntu屏幕中和\v类似。
另外浮点数:用%f表示小数形式,用%e 表示科学计数法。