龙空技术网

「C与指针心得」2.转义字符

IngresGe 93

前言:

此刻小伙伴们对“c语言合法的转义字符”大约比较关怀,朋友们都需要知道一些“c语言合法的转义字符”的相关内容。那么小编也在网络上收集了一些对于“c语言合法的转义字符””的相关知识,希望同学们能喜欢,朋友们快快来学习一下吧!

感谢您的关注与点赞

第二章的重点就是转义字符和编程风格,这里只列举一下我们常用的转义字符,至于编程风格,这个可以根据不同的平台有不同的风格,谷歌与微软的风格不相同,但有一点我们要记住,就是需要与我们编写的工程代码中的风格保持一致,等「C与指针心得」的最后,我会单独抽出一章来讲解一下C语言的编程风格。

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加”\”来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

基本形式

首先转义字符和普通字符数据一样,只能够出现在单引号或者双引号中。并且转义字符都以\开头。

转义字符有三种表示方式,分别是

1. 8进制 \加8进制数字

2. 16进制 \x加16进制数字

3. 特殊转义字符 \加有特殊意义的符号

所有的转义字符和所对应的意义:

转义字符

一般转义字符

这种转义字符,虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为:

\a \n \t \v \b \r \f \\ \’ \"

我们发现,转义字符'\\'代表的反斜杠"\"、转义字符’\’’代表的字符"'"和转义字符'\"'代表的字符""",其本身就是可显示字符,为什么还要对它转义呢?

这是因为它们的原有的字符形式已作它用,其中,单引号用作区分字符常量的括号,双引号用作区分字符串的括号,而反斜杠本身已用来表示转义字符的开头,因此必须对它们用转义字符重新声明。

八进制转义字符

它是由反斜杠'\'和随后的1~3个八进制数字构成的字符序列。例如,'\60'、'\101'、'\141'分别表示字符'0'、'A'和'a'。因为字符'0'、'A'和'a'的ASCII码的八进制值分别为60、101和141。

字符集中的所有字符都可以用八进制转义字符表示。

如果你愿意,可以在八进制数字前面加上一个0来表示八进制转移字符。

十六进制转义字符

它是由反斜杠'\'和字母x(或X)及随后的1~2个十六进制数字构成的字符序列。例如,'\x30'、'\x41'、'\X61'分别表示字符'0'、'A'和'a'。因为字符'0'、'A'和'a'的ASCII码的十六进制值分别为0x30、0x41和0x61。

可见,字符集中的所有字符都可以用十六进制转义字符表示。

由上可知,使用八进制转义字符和十六进制转义字符,不仅可以表示控制字符,而且也可以表示可显示字符。但由于不同的计算机系统上采用的字符集可能不同,因此,为了能使所编写的程序可以方便地移植到其他的计算机系统上运行,程序中应少用这种形式的转义字符。

示例代码:

void main(void){ int a = 1; int b = 2; int c = 3; printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);}

此程序练习转义字符的使用:

a、b、c分别为整数1,2,3

调用printf显示程序运行结果:

1

23

12 3

分析:

1)程序第一个%d对应的是a,值为1,但是输出完1后,接着是一个“\n”,因此有回车换行;

2)“\n”之后是“\t”,于是跳到下一制表位置(设制表位置间隔为8),再输出两个%d,分别对应的是b和c,因此输出23;

3)紧接着又是一个“\n”,需要再回车换行,又是两个%d输出,分别对应的是a和b,输出12

4)再接着是“\t”,跳到下一制表位置(与上一行的2 对齐),但是下一转义字符“\b”又使退回一格,因此紧挨着2再输出c值3

C语言

标签: #c语言合法的转义字符 #c语言合法的转义字符是什么