本期关键词:字符串、转义字符、注释。
1-字符串
在介绍字符串之前不得不首先回顾关于字符的知识,在C语言中任何可以打印的东西都可以成为一个字符,用char类型的数据进行储存,单引号作为边界【例:char ch = 'w'】如果一个char类型的数据中将多个字符作为一个整体进行储存,则称这个数据为字符串,C语言中并没有独立的字符串类型,它的表示与字符类型相同,都使用char类型的数据,用双引号作为边界以区分【例:char ch[] = "eas&dad^%"】。
1.定义:由双引号引起来的一串字符称为字符串字面值(string literal)简称字符串。字符串字面值都是常量。
2.存储:对字符串的存储需要使用到char类型的数据,格式为【char+变量名+[大小]="字符串"+;】,例如char ch[10]="abcdef";需要注意的是,在这种格式的存储下,字符串会按照顺序被分割成一个个字符分别存放,同时在最后另外存储一个隐藏的【\0】作为结束标志,不会作为内容存在。因此变量名后面的大小需要足够大,以存储字符串的所有字符,如果不能确定字符串的具体大小,可以只写括号不写大小,此时编译器会根据字符串的长度自行分配空间。
另一种存储方式直接将字符串在输入的时候分为多个字符存储,格式为【char+变量名+[大小]={’字符’}+;】这种情况下字符串可以按自己的意愿和顺序存储,最后并不会存储一个隐藏的【\0】作为结束标志。它和前一种存储方式有很大的不同。
如图所示,ch2的存储方式,因为没有结束标志所有在使用的时候并不能自动停止,将会输出一段随机值,如在末尾加上\0则可以与ch1的表示形式完全等价
在上图的情形里可以认为两种表示方式完全等价。 在使用strlen()函数计算ch1或ch2的字符串长度时,【\0】仍然是结束标志,但并不算入字符串长度中。
2-转义字符
1.定义:转义字符是指转变原本字符的含义以起到非原字符作用的作用,是ASCII码中的一种编码。
注:转义字符的数量有限且是固定的。
转义字符 | 含义 | ASCII代码 |
\n | 回车换行 | 10 |
\t | 横向跳到下一制表位置 | 9 |
\v | 纵向跳到下一制表位置 | 11 |
\? | 连续多个问号时防止解释为三字母词 | 63 |
\b | 退格 | 8 |
\r | 回车 | 13 |
\f | 走纸换页 | 12 |
\\ | 反斜线符“\” | 92 |
\' | 单引号 | 39 |
\" | 双引号 | 34 |
\a | 蜂鸣 | 7 |
\ddd | 1~3位八进制数所代表字符 | |
\xdd | 1~2位十六进制数所代表字符 |
3-注释
1.定义:注解、解释,是代码中用于解释某部分代码的一个描述,它本身不是代码的一部分,没有编译上的意义。
2.用法:有两种注释风格(方法),第一种是C语言的注释风格,格式为【/*+内容+*/】即用/**/将内容框选,有点是可以一次性注释大段多行。第二种是C++风格的注释,格式为【//+内容】,其有点是比较灵活,一次性只注释一行。
但C语言的注释风格会有一点缺陷,即如果在/**/的框定区域内有另一个*/,则框定区域不会全部注释,这是因为/*在遇到第一个*/的时候注释停止。