C语言进阶—— 接续符和转义符13

接续符的意义:

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

我们来看一个案例:

 1 #in 2 clud 3 e <st 4 dio.h>
 5
 6 in 7 t m 8 ain( 9 )
10 {
11 pri12 ntf13     (14     "Hello bupi\n"
15     )16     ;
17
18 ret19 urn 0;
20 }

你一眼看过去可能会认为这个不像C语言的代码,但是他的确是的,只是大量使用了接续符,在现实中不用这样使用接续符,这只是一个例子。

有人或许会问,这样一段简单的程序使用接续符就变得这样的混乱,那我们还有必要去了解接续符吗?答案是要了解

改进前的代码:

 1 #include <stdio.h>
 2
 3 #define SWAP(a,b)  { int temp = a; a = b; b = temp; }
 4
 5 int main()
 6 {
 7     int a = 1;
 8     int b = 2;
 9     int c = 3;
10
11     SWAP(a,b);
12
13     printf("a = %d, b = %d\n", a, b);
14
15     SWAP(b,c);
16
17     printf("b = %d, c = %d\n", b, c);
18
19     return 0;
20 }

第三行是一个宏代码块,就是交换两个变量值,但是代码这样挤在一行,可读性并不好。

使用接续符改进后:

 1 #include <stdio.h>
 2
 3 #define SWAP(a,b)       4 {                       5     int temp = a;       6     a = b;              7     b = temp;           8 }
 9
10 int main()
11 {
12     int a = 1;
13     int b = 2;
14     int c = 3;
15
16     SWAP(a,b);
17
18     printf("a = %d, b = %d\n", a, b);
19
20     SWAP(b,c);
21
22     printf("b = %d, c = %d\n", b, c);
23
24     return 0;
25 }

使用接续符改进后的宏代码块可读性大大增加了。

接续符的使用:

  • 编译器会将反斜杠剔除,跟在反斜杠后面的字符自动接续到前一行
  • 在接续单词时,反斜杠之后不能有空格,反斜杠的下一行也不能有空格
  • 接续符适合在定义宏代码块时使用

转义符的意义:C语言的转义符 (\) 主要用于表示无回显示符,也可以表示常规字符

  •   \n  回车换行 (本义是光标往下一行)
  •   \t  横向跳到下一制表位
  •   \v  竖向跳格
  •   \b  退格
  •   \r  回车(本义是光标重新回到本行开头)
  •   \f  走纸换行
  •   \\  反斜杠符   \
  •   \‘  单引号符
  •   \a  鸣铃
  •   \ddd  一至三位八进制数代表的字符
  •   \xhh  一至两位十六进制数所代表的字符

转移符的使用:当反斜杠 (\) 作为转移符使用时必须出现在单引号或者双引号之间

案例:

 1 #include <stdio.h>
 2
 3 int main()
 4 {
 5     char enter = ‘\n‘;
 6
 7     char* p = "\141\t\x62";
 8
 9     printf("%s", p);
10     printf("%c", enter);
11
12     return 0;
13 }

小结:

  • C语言的反斜杠同时具有接续符和转移符的作用
  • 作为接续符使用的时候可直接出现在程序中
  • 作为转移符使用的时需出现在单引号或者双引号之间

原文地址:https://www.cnblogs.com/luojianyi/p/9403453.html

时间: 2024-08-02 22:36:38

C语言进阶—— 接续符和转义符13的相关文章

C之接续符和转义符(十二)

我们今天来介绍下 C 语言中比较少见的两种符号,接续符和转义符.其实也不少见啦,只是我们平时不太注意罢了,下来我们就介绍下这两种. 我们首先来介绍下接续符(\).那么接续符到底是什么呢?它是C 语言中指示编译器行为的利器.我们如何来使用接续符呢?编译器会将反斜杠剔除,跟在反斜杠后面的字符自动接续到前一行:在接续单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格:接续符适合在定义宏代码块时使用. 我们下来用宏代码来实现一个交换数值功能的代码,这个题同样是笔试中常见的题型之一.代码如下:

常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集)

信息来源:http://www.cnblogs.com/dtdxrk/p/3318453.html 常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集) HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显

初学C#之变量、占位符、转义符、还有就是类型转换

㈠.定义变量 先定义再赋值 int Num1; Num1 = 10; 定义的同时赋值 int age = 28; 定义多个变量同时赋值,先决条件变量类型相同,例如: string phome = "18912508888", name = "王大"; 定义变量时,数据类型后面添加"?" 在变量类型后面添加"?"表示可空值类型.例如: int a = null;//出错提示:无法将null转换为"int",因

JAVA转义符与基本数据类型简介

转义符: 转义符是用来转换一些会被当作代码的字符和不被识别的字符,将这些字符转换成能打印输出的字符. 以下是一些转义符的作用: 1.\n(回车):用于回车,不用转义符回车是识别不了的 2.\t(制表):制表是补充八个空格,例如abc,就在字符的后面补充五个空格,因为要算上前面的三个字符:如果字符长度超过八个,例如abcdefghijk,就以超过的个数再补空格,像前面末尾的ijk超过了三个就在这三个后面补充五个空格. 3.\r(回退):是用于回退到当前这行的行首 4.\a(警告):在dos界面能发

《C语言进阶剖析》课程目录

<C语言进阶剖析>课程目录 第1课 - 基本数据类型 第2课 - 有符号数与无符号数 第3课 - 浮点数的秘密 第4课 - 类型转换 第5课 - 变量属性 第6课 - 分支语句 第7课 - 循环语句 第8课 - goto和void分析 第9课 - const 和 volatile分析 第10课 - struct和union分析 第11课 - enum, sizeof, typedef 分析 第12课 - 注释符号 第13课 - 接续符和转义符 第14课 - 单引号和双引号 第15课 - 逻辑运

C#语言基础知识(3):C#中转义符

C#转义字符: 一种特殊的字符常量:以反斜线"\"开头,后跟一个或几个字符.具有特定的含义,不同于字符原有的意义,故称“转义”字符.主要用来表示那些用一般字符不便于表示的控制代码. 它的作用是消除紧随其后的字符的原有含义用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义” 用可以看见的字符表示那不可以看见的字符, 如'\n'表示换行 常用的转义字符及其含义: \’ 单引号\” 双引号\\ 反斜杠\0 空\a 警告(产生峰鸣)\b 退格\f 换页\

符号(注释符+转义符+接续符)

注释符: 1 #include <stdio.h> 2 int main() 3 { 4 int/*...*/i; //int i; 5 char* s = "abcdefgh //hijklmn"; //s[]=abcdefgh //hijklmn; 6 //Is it a \ 7 valid comment? //Is it a valid comment? 8 in/*...*/t i; //in t i; 9 return 0; 10 } 注释规则: 注释符的处理方

C语言笔记-字符串+转义符(写起来想砸键盘)

转义符真心写起来好麻烦... 代码: 1 #include <stdio.h> 2 int main() 3 { 4 printf("sizeof(\"123\") =%u\n",(unsigned)sizeof("123")); 5 //结果的"在字符串字面量里要写成\" 6 printf("sizeof(\"AB\\tC\") =%u\n",(unsigned)sizeo

Java语言基础---转义符

转义符 转义符使用"\"表示.常用转义符如下: 1.'\n'回车 2.'\t'制表位字符,一个表示向右跳8-10个字符 3.'\\'表示'\' 4.'\''表示单引号 5.'\'''表示双引号 6.'\u4e2d'表示unicode编码对应的字符(汉字:中) 7.(char)20013表示汉字:中