字符串和转义字符

字符串

众所周知,char = 'a';这样搞只能创建一个字符,如果我们想要创建的有很多个字符,就需要字符串。

一下创建很多个东西,就理所当然用到数组嘛,数组顾名思义,就是存放一组数,里面放上字符,就是字符数组(如图)

 当然如图所示创建数组的方式完全没有问题,可是为什么arr2打印出来的却是烫烫烫呢,真相就是

字符串的结束标志是\0,arr1中c后面有一个隐藏的\0printf在读完c后就终止了而arr2创建的方式却没有隐藏的\0printf会在读完c后继续在后面的空间中读取,直到读到\0停止

如图加上\0后就正常了

注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串 内容。(如图字符串长度为3,\0并未被算进去)

转义字符(转义字符顾名思义就是转变意思

转义字符一览

\?
在书写连续多个问号时使用,防止他们被解析成三字母词
\'
用于表示字符常量 '
\“
用于表示一个字符串内部的双引号
\\
用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a
警告字符,蜂鸣
\b
退格符
\f
进纸符
\n
换行
\r
回车
\t
水平制表符
\v
垂直制表符
\ddd
ddd表示1~3个八进制的数字。 如: \130 X
\xdd
dd表示2个十六进制数字。 如: \x30 0

\?

关于三字母词的解释在图中,至于为什么不演示因为现在编译器好多不支持三字母词没法演示

 下面是\'到\a的解释,其他可根据释义自行尝试(我们着重讲解后两个)

int main()
{
	char ch = '\'';//\’的作用就是让’单纯就是'
	printf("%c",ch);
	char ch2 = "ab\"c";//\"作用是让"单纯就是"
	printf("%c", ch2);
	printf("\\n");//\\作用就是防止被解释为转义序列
	printf("\a");//转义为让系统发出蜂鸣声


	return 0;
}
\ddd
ddd表示1~3个八进制的数字。 如: \130 X

为什么会打印出X呢?我们先放张图 

有没有发现?没发现?

行告诉你吧 (130是八进制数字,转化为十进制后是不是88,88是不是x在ASCII表中对应的值

好这样\xdd同理 

\xdd
dd表示2个十六进制数字。 如: \x30 0

 (看看16进制的63转化为十进制后的数值是不是字符c后面对应的数值呢)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值