接续符和转义符

符号的技巧

专题二:符号的技巧。包括以下章节:

  • 注释符号
  • 接续符和转义符
  • 单引号和双引号
  • 逻辑运算符使用分析
  • 位运算符分析
  • ++、–操作符使用分析
  • 优先级和类型转换分析

接续符(\)的意义

  • C语言中接续符(\)是指示编译器行为的利器

使用接续符后

#include<stdio.h>

#def\
ine MAX\
255
int main()
{
/\
/这是\
\
注释

i\
n\
t\
 *\
 p\
= \
 NULL;

    printf("%0X\n", (unsigned int)(long)p);

    return 0;
}

编译打印,没有问题。
不使用接续符是这个样子的

#include<stdio.h>

#define MAX 255
int main()
{
    //这是注释

    int *p = NULL;

    printf("%0X\n", p);

    return 0;
}

接续符的使用

  • 编译器会将反斜杠剔除,跟在反斜杠后面的字符自动到前一行
  • 在接续单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格(具体视情况而定,并非绝对。最好不要有空格。)
  • 接续符适合在定义宏代码块时使用,更容易明白

实例分析1-2:宏代码块的定义

使用接续符的宏代码块

#include<stdio.h>

#define SWAP(a,b)   \
{                   \
    int tmp = a;    \
    a = b;          \
    b = tmp;        \
}                   \

int main()
{
    int a = 1;
    int b = 2;

    SWAP(a,b);

    printf("a=%d, b=%d\n", a, b);

    return 0;
}

打印结果:
这里写图片描述

使用函数实现交换函数

#include<stdio.h>

#define SWAP(a,b)   \
{                   \
    int tmp = a;    \
    a = b;          \
    b = tmp;        \
}                   \

void swap(int a, int b)
{

    int tmp = a;
    a = b;
    b = tmp;
}

int main()
{
    int a = 1;
    int b = 2;

    //swap函数并不能实现值互换。
    //有些时候宏定义不能用函数来实现。
    swap(a,b);

    printf("a=%d, b=%d\n", a, b);

    SWAP(a,b);

    printf("a=%d, b=%d\n", a, b);
    return 0;
}

结果:
这里写图片描述

转义字符

  • c语言中转义符主要用于表示无回显字符,表示一个动作

    | \n | 回车换行 |
    | \t | (横向跳下一制表位置)tab制表符 |
    | \v | 竖向跳格 |
    | \b | 退格 |
    | \r | 回车 |
    | \f | 走纸换页 |
    | \\ | 反斜杠符”\” |
    | \’ | 单引号符”’” |
    | \a | 鸣铃 |

  • 也可以表示常规字符
    | \ddd | 1~3位八进制数所代表的字符 |
    | \xhh | 1~2位十六进制所代表的字符 |

小结

  • c语言中的反斜杠同时具有接续符和转义符的作用
  • 当反斜杠出直接出现在程序中,作为接续符使用
  • 当反斜杠出现在字符或字符串中,作为转义符使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值