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

我们今天来介绍下 C 语言中比较少见的两种符号,接续符和转义符。其实也不少见啦,只是我们平时不太注意罢了,下来我们就介绍下这两种。

我们首先来介绍下接续符(\)。那么接续符到底是什么呢?它是C 语言中指示编译器行为的利器。我们如何来使用接续符呢?编译器会将反斜杠剔除,跟在反斜杠后面的字符自动接续到前一行;在接续单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格;接续符适合在定义宏代码块时使用。

我们下来用宏代码来实现一个交换数值功能的代码,这个题同样是笔试中常见的题型之一。代码如下:

#include <stdio.h>

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

int main()
{
    int x = 1;
    int y = 2;
    int z = 3;
    
    SWAP(x, y);
    
    printf("x = %d, y = %d\n", x, y);
    
    SWAP(y, z);
    
    printf("y = %d, z = %d\n", y, z);
    
    return 0;
}

编译运行后结果如下:

那么我们可以看到已经实现了交换的功能,并且宏代码看起来一目了然。这就是接续符的妙用了,如果我们用的好的话,那么我们的代码的可读性会大大增强。

下来我们来介绍下转义符,转义符的符号恰好和接续符一样,也是(\)。那么 C 语言中的转义符主要用于表示无回显字符,也可用于表示常规字符。当反斜杠(\)作为转义符使用时必须出现在单引号或者双引号之间。下表是一些常见的转义符表示

我们来分析个示例代码,以此来理解转义符。代码如下:

#include <stdio.h>

int main()
{
    char enter = '\n';
    
    char* p = "\141\t\x62";
    
    printf("%s", p);
    printf("%c", enter);
    
    return 0;
}

那么我们来分析下上面的代码,我们定义了 enter 为换行符。指针 p 指向的是什么字符串呢? \141 代表八进制的数,转换为10进制后为97,97代表的字母为a。\t代表一个 tab 键。 \x62 代表十六进制的数,转换成10进制后为98,98代表的字母为b。那么这一句就代表的意思为 a    b;我们来看看打印结果是否如我们分析的那样

那么我们看到打印的结果正如我们分析的那样。关于接续符和转义符我们就学习到这了,总结如下:反斜杠(\)作为同时具有接续符和转义符的作用,作为接续符使用时可直接出现在程序中,作为转义符使用时需出现在单引号或双引号之间。后面我们会继续对 C 语言的学习。

欢迎大家一起来学习 C 语言,可以加我QQ:243343083。

原文地址:http://blog.51cto.com/12810168/2095835

时间: 2024-11-05 21:47:18

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语言进阶—— 接续符和转义符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语言的代码,但是他的确是的,只是大量使用了接续符,在现实中不用这样使用接续符,这只是一个例子. 有人或许会问

初学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界面能发

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

注释符: 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 } 注释规则: 注释符的处理方

11 12 13 14 py单引号字符串、双引号字符串和转义符 字符串拼接 保持字符串的原汁原味

第11课 单引号字符串.双引号字符串和转义符 # 单引号字符串.双引号字符串和转义符 print('Hello World') print("Hello World") print("Let's go!") print('"OK"') print("'H',\"W\"") -------------------------- 输出结果 Let's go! "OK" 'H',"W

Backbone 模板 underscore template默认的转义符&lt;%= %&gt; 与jsp的冲

先定义转义符,因为默认的转义符<%= %> 与jsp的冲突(如果js模板写在jsp页面中)       _.templateSettings = { interpolate : /\{\{(.+?)\}\}/g }; 下面就可以这样写 <script type="text/template" id="detailedBar-template"> <div class='title'> <span class='label'&

转义符

前段时间学的知识,为免忘记,一点点整理. 转义符 代表的意义 \" 双引号 \' 单引号 \n 换行符 \t 制表符(相当于按下了Tab键) \\ 斜杠\ 在代码中书写一个斜杠(\)用于改变\后出现字符的意义. " " 代表字符串的开始和结束. \" 普通的双引号字符. 例: Tom said:" Hello !" Console.Write("Tom said :\"Hello!\" ") \t 制表符 例: 你 好 (相当于按下了Tab键) Console.Writeli

多命令顺序执行,单引号,双引号,反引号,转义符

多命令顺序执行 ; 多命令顺序执行 && 逻辑与 前命令执行ok,后面进行 || 逻辑或 前命令执行失败 后面执行 | 命令1|命令2 命令1结果,让命令来处理通配符 ?匹配任意一个字符 * 匹配0个或者多个任意字符 [] 匹配中括号中的任意一个字符 [-] 匹配括号中的任意一个字符 [^] 逻辑非 匹配不是中括号中的任意一个字符 [[email protected] biji]# aa=666 [[email protected] biji]# echo $aa #打印变量aa666[[