关于c:C进阶13接续符和转义符

48次阅读

共计 1018 个字符,预计需要花费 3 分钟才能阅读完成。

Summary

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

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

3)接续符 '\'适宜用于 定义宏代码块,进步可读性

4)C 语言中的 本义符 '\'次要用于 示意无回显字符 (不会在屏幕上显示的),也能够用于 示意惯例字符

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

\n 回车换行
\t 横向跳到下一制表地位
\ 反斜杠符 ’\’
\’ 单引号符
\ddd 1~3 位八进制数所代表的字符
\xdd 1~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 横向跳到下一制表地位
    \ 反斜杠符 ’\’
    \’ 单引号符
    \ddd 1~3 位八进制数所代表的字符
    \xdd 1~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 语言进阶课程》。
如有错漏之处,恳请斧正。

正文完
 0