1

Summary

1)编译器会将反斜杠'\'剔除,跟在反斜杠后面的字符自动接续到前一行

2)在接续单词时,反斜杠'\'之后不能有空格,反斜杠'\'的下一行之前也不能有空格

3)接续符'\'适合用于定义宏代码块,提高可读性

4)C语言中的转义符'\'主要用于表示无回显字符(不会在屏幕上显示的),也可以用于表示常规字符

5)当反斜杠'\'作为转义符使用时,必须出现在单引号或者双引号之间

\n回车换行
\t横向跳到下一制表位置
\反斜杠符'\'
\'单引号符
\ddd1~3位八进制数所代表的字符
\xdd1~2位十六进制数所代表的字符
\a响铃
\v竖向跳格
\b退格
\r回车
\f走纸换页

接续符和转义符

1、接续符'\'

下面代码正确么?

#incl\
ud\
e <s\
tdio\
.h>

in\
t main(\
)
{
    printf(\
    "Hello World.\n"
    )\
    ;

    ret\
urn 0;
}
  • 编译器会将反斜杠'\'剔除,跟在反斜杠后面的字符自动接续到前一行

    // 将反斜杠'\'剔除,后面的字符自动接续到前一行的代码如下
    #include <stdio.h>
    
    int main()
    {
      printf(    "Hello World.\n"
      )    ;
    
      return 0;
    }
  • 在接续单词时,反斜杠'\'之后不能有空格,反斜杠的下一行之前也不能有空格

    // 如果格式像下面这样,urn前面有4个空格,这时候编译就不过了,因为得到的语句是
    // ret    urn 0;
      ret\
      urn 0;
  • 接续符'\n'适合在定义宏代码块时使用

    // 用宏代码块实现的交换变量语句
    #define SWAP(a, b)  \
    {                   \
      int temp = a;     \
      a = b;            \
      b = temp;         \
    }

2、转义符'\'

  • C语言中的转义符'\'主要用于表示无回显字符(不会在屏幕上显示的),也可以用于表示常规字符
  • \n回车换行
    \t横向跳到下一制表位置
    \反斜杠符'\'
    \'单引号符
    \ddd1~3位八进制数所代表的字符
    \xdd1~2位十六进制数所代表的字符
    \a响铃
    \v竖向跳格
    \b退格
    \r回车
    f走纸换页
  • 当反斜杠'\'作为转义符使用时,必须出现在单引号或者双引号之间

    char* p = "\141 \t \'\a \x62  ";    
      // \141: 八进制141对应十进制97,Ascii中表示字符a
      // \t: 制表符
      // \': 单引号'
      // \a: 响铃一次
      // \x62: 十六进制62对应于十进制98,Ascii中表示字符b
    printf("%s\n", p);    

本文总结自“狄泰软件学院”唐佐林老师《C语言进阶课程》。
如有错漏之处,恳请指正。


bryson
169 声望12 粉丝