C语言中的转义字符

转义字符就如字面意思一样,转变原来的意思的字符。

\n

\n我为换行符。

printf("abc\ndef");
//答案
//abc
//def

\?

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

例:

printf("(Are you ok??)");//(Are you ok]   
//??)会被转译成]
//??(会被转译成[

 为了避免这种情况,改为:

printf("(Are you ok\?\?)");

\'

用于表示字符常量 

printf("%c\n",''');
// 想打印一个',但'''前两个单引号会被误认为一对单引号

为了避免这种情况,改进:

printf("%c\n",'\'');// \将'转义

\"

用于表示一个字符串内部的双引号。

同上面单引号相同。

\\

用于表示一个反斜杠,防止它被解释为一个转义序列符。

printf("abc\ndef");//想打印 abc\ndef
//但会输出成
//abc
//def
//\n会被认成换行

为了避免这种情况,改进:

printf("abc\\ndef");
//\将\n转义成普通字符

 用处:想要打印路径

printf("c:\test\net\hehe.c");
//但会误将\x认成转义字符

这时候避免此情况就可

printf("c:\\test\\net\\hehe.c");

\a

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

\b

退格键,光标回退一个字符,但不删除字符。

printf("abcdef");//abcdef_  光标会停在f的后面
printf("abcdef\b");//abcdef 光标会停在f处
printf("abc\bdef");//abcdef \b后还有字符这时候\b会被覆盖

\f

换页符,光标移到下一页。在现代系统上,这已经反应不出来,行为改成类似与\v。

\r

回车符,光标到同一行的开头。

printf("abcdef\r");// abcdef 光标会停在a处,也就是顶头
printf("abcdef\r ");// bcdef \r后面有一个空格会覆盖前1个字符
//\r后面有两个空格会覆盖前两个字符

\t

制表符,光标移到下一个水平制表位,通常是下一个8的倍数。

printf("ab\tdef\tq\thehe");
//ab      def     q       hehe
//  6个空格  5个空格 7个空格
//Tab——4个字节/8个字节(可设置)

\v

垂直分隔符,光标到下一个水平制表位,通常是下一个8的倍数。

\ddd

ddd表示1~3(不一定要3个数字1个2个都可以)个八位制的数字。

注意打印的都是字符

如:\130  表示字符x

//\1    3    0
//1*8*8+3*8+0*1=88(ASCII——>x)
printf("%c\n",'\741');//741作为八进制数太大了,求出来的十进制ASCII中没有对应的
//ASCII最大127

\xdd

dd表示2个十六位进制数字。

注意打印的都是字符

如:\x30 表示字符0

//\x  3  0
//  3*16+0*1=48(ASCII———>0)

\0

NULL字符,代表没有内容,\0就是\ddd这类转义字符的一种,用于字符串的结束标志,其ASCII码值是0。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值