初识c语言----转义字符

本文详细介绍了C语言中的转义字符,包括其定义、常见转义字符表以及实例演示,如换行符n、单引号、双引号、反斜杠、八进制和十六进制转义等,帮助读者理解转义字符在代码中的实际作用。
摘要由CSDN通过智能技术生成

转义字符

        转义字符在c语言中可谓是一名常客,在编辑代码时常常会用到它,这篇文章让我们一起来了解一下吧!

 1.定义: 

        在c语言中,转义字符是一种特殊的字符序列,它通常以反斜杠(\)开头,由于所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示,于是便规定“\+字符”的格式来表示常见的那些不能显示的ASCII字符,如\n,\0,\t等,这些特殊的字符被称为转义字符,转义字符顾名思义,它与原本的意思不同,它们被赋予了新的功能与意义。 

2.转义字符表:

转义字符

意义

ASCII码值(十进制)

\a

响铃符(BEL),使终端发出警报声或出现闪烁

007

\b

退格(BS) ,将当前位置移到前一列

008

\f

换页(FF),将当前位置移到下页开头

012

\n

换行(LF) ,将当前位置移到下一行开头

010

\r

回车(CR) ,将当前位置移到本行开头

013

\t

水平制表符(HT) (跳到下一个TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一个反斜线字符'\'

092

\'

代表一个单引号(撇号)字符

039

\"

代表一个双引号字符

034

\?

代表一个问号,在书写连续多个问号时使⽤,防⽌他们被解析成三字母词

063

\0

空字符(NULL)

000

\ddd

1到3位八进制数所代表的任意字符

三位八进制

\xhh

十六进制所代表的任意字符

十六进制

 下面让我们看一看几个常见的转义字符:

 1.  \n (换行符)

        a.用法:换行,当输入完一行内容后,光标转到下一行的起始位置

        b.例子:

#include <stdio.h>

int main()
{
	printf("你好");
	printf("你好");
    printf("你好");
    return 0;
}

        结果如下: 

        从结果上看,从输出的第二个结果开始,每一行的结果会直接跟在上一个输出结果的后面,这个例子是一个简单的例子,所以我们可以直接看出每个输出的结果。但是,当我们写一些比较复杂的代码时,它们的结果连在一起就不太容易看出来,所以,这时候就可以使用换行符来把每一个结果一行行的显示出来。

不使用换行符: 

int main()
{
	printf("%d", 16 + 24);  //40
    printf("%d", 23 * 24);  //552
    printf("%d", 10 - 2);   //8
    return 0;
}

 结果如下:

 当使用换行符时:

#include <stdio.h>
int main()
{   
	printf("%d/n", 16 + 24);  //40
	printf("%d/n", 23 * 24);  //552
	printf("%d/n", 10 - 2);   //8
	return 0;
}

 结果如下:

 2. \'

        a.用法:表示一个单引号字符

        b.例子:

#include <stdio.h>

int main()
{
	printf("%c\n",'\'');	
    return 0;    //结果输出'
}

        由两个单引号组成的‘’表示该引用的是字符,由两个双引号组成的“”表示该引用的是字符串,在字符串中,无论写 \' 还是' ,输出的结果是一样的,对程序没有任何影响,但是在给字符变量赋值时,一定要写 \' ,否则会报错。

 3. \"

        a.用法:表示一个字符串内部的双引号

        b.例子:

#include <stdio.h>

int main()
{
	printf("%s\n", "\"");
	return 0;    //结果输出"
}

不使用转义字符(错误写法):

这时机器会将前两个""看为一个字符串 ,从而导致最后一个双引号多余出来。

4. \\ 

        a.用法:表示一个反斜杠,防止它被解释为一个转义序列符

        b.例子:

#include <stdio.h>

int main()
{
	printf("c:\test\bac");

	return 0;  
}

结果: 

        在这个例子中,这是一个文件路径,当编译时机器会将\t,\b看为转义字符,机器输出的结果与我们想要输出的不同,这时想要输出文件路径,就需要用到反转义字符。

        ps:为什么会是这个结果?因为\t转义字符中的t其实就是电脑中的tab键,一个tab键为8个空格,即就是在\t前共有8个字符,转义字符不输出,所以\t后面的est输出,但又由于\b也为转义字符,它的用法是退格,将当前位置移到前一列,所以\b前面的t就会被\b后面的a所覆盖,于是便是这个结果。

使用\\时:

#include <stdio.h>

int main()
{
	printf("c:\\test\\bac");

	return 0;  
}

结果: 

(这时发现这个路径被完整的输出出来了。)

5. \ddd(八进制转义字符)

        a.用法:表示1~3个八进制的数字,d的范围是0~7

        b.例子:

#include <stdio.h>
int main()
{
	printf("%c\n", '\150'); //150是8进制,转换成10进制是104,查找值为104的ASCII码的字符
	return 0;
}

        结果: 

         如果其中有数字超出八进制的范围,则输出末尾数字。

#include <stdio.h>
int main()
{
	printf("%c\n", '\128'); //8超出八进制的范围,\12被看成一个转义字符
	return 0;
}

        结果: 

6. \xhh (十六进制转义字符)

        a.用法:hh表示两个十六进制的数字

        b.例子:

#include <stdio.h>
int main()
{
	printf("%c\n", '\x32'); //32是16进制,转换成10进制是50,查找值为50的ASCII码的字符
	return 0;
}

        结果: 

7. \0(空字符) 

        a.用法:表示空字符,即没有内容,\0 就是属于 \ddd 这类转义字符的一种。

        b.例子:

#include <stdio.h>
int main()
{
	char a[] = "123";   //数组a
	char b[] = { '1','2','3' };  //数组b
	printf("%s\n", a);
	printf("%s\n", b);
	return 0;
}

结果: 

        看到这里会有个疑惑,为什么第二行会有乱码,而第一个输出结果却没有,这时我们在编程软件上进行逐条分析,如下图所示:

        这时就会发现,在字符串123后面有一个隐藏的\0出现,而b中却没有。所以,我们可以认为当打印字符串时,遇到\0的时候打印结束,如果无\0则直到在空间外找到一个\0为止,即\0是字符串结束的标志。

当我们在数组b中加一个\0时:

#include <stdio.h>
int main()
{
	char b[] = { '1','2','3','\0'}; 
	printf("%s\n", b);
	return 0;
}

 结果如下:

  • 34
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值