C语言---转义字符

在字符中有一种特殊的字符----转义字符,转义字符顾名思义就是  转变原来的意思的字符。

在学习的过程中肯定见过  \n , \0 这样的字符,很疑惑为什么是这样的呢?

 接下来我们通过举 \n 这个字符的例子开一个头! 如下:

 

#include <stdio.h>
int main()
{
    printf("abcndef");
    return 0;
}

输出结果如下:

如果我们修改⼀下代码,在 n 的前⾯加上 \ ,变成如下代码:

#include <stdio.h>
int main()
{
    printf("abc\ndef");
    return 0;
}

输出结果如下:

可以看到修改后输出结果截然不同!这是为什么呢?

这就是转义字符的问题, \n 是⼀个转义字符表⽰换⾏的意思,我们可以简单的理解为 \ 让 n 的意思 发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思。

C语⾔中像这样的转义字符还有⼀些,具体如下:

\? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。

\' :⽤于表⽰字符常量'

\" :⽤于表⽰⼀个字符串内部的双引号

\\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。

\a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

\b :退格键,光标回退⼀个字符,但不删除字符。

\f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。

\n :换⾏符。

\r :回⻋符,光标移到同⼀⾏的开头。 

\t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数。

\v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。

下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式

\ddd :d d d表⽰1~3个⼋进制的数字。如:\130表⽰字符X

\xdd :d d表⽰2个⼗六进制数字。如:\x30表⽰字符0

\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0.

代码演⽰:

#include <stdio.h>
int main()
{
    printf("%c\n", '\'');
    printf("%s\n", "\"");
    printf("c:\\test\\code\\test.c\n");
    printf("\a");
    printf("%c\n", '\130'); //130是8进制,转换成10进制是88,以88作为ASCII码值的字符是
    printf("%c\n", '\x30'); //x30中的30是16进制,转换成10进制是48,以48作为ASCII码值的
    return 0;
}

这些ASCII码值是可以⾃⼰写代码验证的,⼤家也可以⾃⼰验证。 关于转义字符我们⾸先要了解,然后要能在字符串中识别出来。

转义字符参考:https://zh.cppreference.com/w/c/language/escape

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值