- 课程链接:https://coding.imooc.com/learn/list/463.html
- 课程名称:C语言系统化精讲,重塑编程思想,打造坚实的开发基础
- 章节名称:
- 第3章:C语言快速入门
- 3-2数据类型之char类型
- 第3章:C语言快速入门
- 讲师姓名:bennyhuo
- 时间:2022-09-07 11:50
课程内容
-
char类型变量可以直接使用单引号把一个字符括起来,来给变量赋值
-
也可以使用转义的方式来给变量赋值:例如char c = ‘\0’;这是一种转义字符,也可以给普通字符进行转义
-
如char c1 = ‘\61’,这里表面上看,是把ASCII码为61的赋值给变量,但实际上这里面的61是一个八进制数,变为十进制是49,即’1’
-
也可以用十六进制来赋值,如char c2 = ‘\x31’,也是’1’
-
几个重要的字面量literal(纯常量,是保存在常量区内存中)
写法 表示内容 写法 表示内容 \n new line \b backspace \r return(回车) \t table \’ 单引号,表示字符的字面量 \" 表示字符串字面量 -
以上内容都ASCII字符集规定的,最开始,只使用128个字符,即7个字节,后来扩展到256个字符,8个字节
-
如果想保存中文,char类型的长度显然不能名数(中文字符成千上万),所以中文使用的
Unicode
字符集,面变量类型调整为宽字符类型 -
在C95下,定义了
wchar_t
类型来表示宽字符wchar_t c3 = L'中';
\\ 这其中的wchar_t
是unsigned short
类型的别名,因为short
就是16位的类型,可以保存Unicode
类型值- 以上定义有些复杂,可以直接把非ASCII字符都定义成字符串:
char *cs = "中";
-
字符编码问题:码点code point
- 在windows系统下,IDE中文件的默认编码为GBK,对英文字符无影响,但对汉字字符就会有很大影响
- 我们在源代码中,使用中文字符,如果IDE是以
UTF-8
来保存中文字符,但编译器会以GBK的编码来编译源文件,如果这个中文被保存成UTF-8
格式不可识别,或认定错误的字符,就无法编译下去,程序会报错
-
学习心得
关于字符编码的问题还需要另写文章来学习