这篇来简单说说C语言中的char类型.
1.简单介绍字符型
这节内容在书中3.4章
在C语言中,char"从技术层面看是整数型,因为char实际上储存的是整数而不是字符"(50页).
一般来说char被定义为8位的存储单元,所以16位,32位,64位系统都可以使用.ASCII码的范围是0~127(2^7-1),所以8位用来存储还是比较富裕的.但是对于别的语言,比如汉语,8位的范围是远远不够的.所以存在Unicode类型编码,目前已经存储10多万个字符.
1.定义char类型变量
char c1 = 'A' ; //1
char c2 = 65 ; //2
char c3 = '\n'; //3
第一种是标准的形式,第二种则是直接赋值为数字.虽然合法但是不推荐.第三种是定义了一个换行符.
2.输出一个char变量,以及转义序列
1.输出
#include <stdio.h>
int main (void) {
printf("char: %c\n",'B'); //1
printf("int: %c\n", 66); //2
printf("others: %c", '\n'); //3 第一个参数没有\n
printf("%d", 123) ; //4
return 0;
}
运行结果
char: B
int: B
others:
123
2中65对应的就是B的ASCII值,直接输出也是可以的.前提是以%c 来转换.
3中输出了一个换行符,但是在第一个参数中没有与1, 2一样加上\n.
4的运行结果在新的一行,证明3中的\n确实输出了.
2.转义序列
在printf()中,转义序列扮演了关键角色,它可以把我们要输出的字符串进行换行,制表等操作.下面的表格列举了一些转义序列以及转义序列的含义.(52页)
转义序列 | 含义 |
\a | 警报(ASCI C),比如让主机的蜂鸣器发出警报. |
\b | 退格(Backspace) |
\f | 换页 |
\n | 换行 |
\r | 回车(Enter) |
\t | 水平制表符(Tab) |
\v | 垂直制表符 |
\\ | 反斜杠 \ |
\' | 单引号 ' |
\" | 双引号 " |
\? | 问号 ? |
\0oo | 八进制值(oo应该为有效的八进制数字,o取值范围0~7) |
\xhh | 十六进制值(xx应该为有效的十六进制数字,取值范围0~F) |
我们来试试后面6个的实际效果是什么样的.
# include <stdio.h>
int main (void) {
printf("反斜杠: \\\n");
printf("单引号: \'%c\'\n", 'A');
printf("双引号: \"%d\"\n", 123456);
printf("问号: \?\n");
printf("八进制值: \070\n");
printf("十六进制值: \x4e\n");
return 0;
}
运行结果:
反斜杠: \
单引号: 'A'
双引号: "123456"
问号: ?
八进制值: 8
十六进制值: N