初识C语言-字符串 + 转义字符 + 注释

字符串

字符串的形式

字符串的有多种形式,可能大家经常使用的字符串就是这种类型: “abcdef”,但其实 “12345678901“ 也可以被称作字符串,并且在 处理输入数据较大时 可能会有意想不到的美妙结果。

字符串的结束标志

说到字符串,大家应该都会第一时间想到 ‘\0’ 。没错, 这就是字符串的结束标志。 当然,也可能有很多人会想,不就是个’\0’吗,这有啥的?那么,就下来就要给大家介绍字符串最重要的点了,那就是字符串的长度,它与‘\0’可有着紧密的联系。

字符串的长度

老样子,在介绍字符串的长度之前,先来给大家简单介绍一个C语言的库函数: strlen

strlen就是专门用来求字符串长度的。它会从字符串的第一个字符开始“数”,一直“数”到 ‘\0’就会停止,’\0’不计入字符串的长度当中。

#include<stdio.h>
int main()
{
	char arr[] = "abcdefg";
	printf("%d", strlen(arr));//这里的打印结果是 7
	return 0;
}

在上述代码中,字符串arr由7个字符(‘a’ ‘b’ ‘c’ ‘d’ ‘e’ ‘f’ ‘g’)和 一个 ‘\0’组成,所以它的长度是7.

看接下来这段代码,你将会发现’\0’的重要性
在这里插入图片描述
在这里你会发现,同样是7个字符,可这时的arr的长度却变成了42(这是一个随机数)。为什么呢?

这就涉及到了’\0’,在上述代码中,修改后的arr字符串里面没有’\0’,当strlen读到字符串arr末尾时, 没有遇到’\0’;那它就会在内存中继续读取,直到它遇见‘\0’ 。因此,此时arr的长度其实是个随机数。

当然,为了避免上述情况的发生,我们也可以自己给arr添加一个’\0’,例如:

#include<stdio.h>
int main()
{
	char arr[] = {'a','b','c','d','e','f','g', '\0'};
	printf("%d", strlen(arr));
	return 0;
}

这样的话,arr的长度又重新变成了7.

转义字符

转义字符的类型

在C语言中,有很多的转义字符,他们大多都是 \字符 的组和,而那个 \ 就起到了转变意思的作用 。像以下转义字符:

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

对于上述的转义字符,我举个简单例子。
例如要你打印一个 \ 在屏幕上

方案一:

#include<stdio.h>
int main()
{
	printf("%c", '\');
	return 0;
}

方案二:

#include<stdio.h>
int main()
{
	printf("%c", '\\');
	return 0;
}

显然,当你尝试过后你会发现方案一根本就编译不过去,就是因为在 ’ \ '中的 \ 与 后面的 结合变成了转义字符,导致 ’ \ ‘ 语法错误。而方案二 ’ \ ’ 第一个 \ 就是把后面那个 \ 给转义了,让它不要与后面那个 ’ 结合形成转义字符。

转义字符的应用

介绍完转义字符的类型之后,我们再来探讨一下转义字符的作用和应用。作用的话很明显,就是让原来的单个字符进行转义后被赋予一定的功能。而应用的话,可以结合上一个点我之前介绍的求字符串的长度来考察。例如:

#include<stdio.h>
int main()
{
	printf("%d\n", strlen("c:\test\628\test.c"));
	return 0;
}

这道题的正确答案应该是14,分别是 ’ c ’ ’ : ’ ’ \t ’ ’ e ’ ’ s ’ ’ t ’ ’ \62 ’ ’ 8 ’ ’ \t ’ ’ e ’ ’ s ’ ’ t ’ ’ . ’ ’ c ',一共14个字符。这里要注意的是切不可把 == ’ \628 ‘== 看成是一个字符, 因为8进制数最大数字是7,如果是换成别的小于8的数字,那就是一个字符!

注释

注释的作用

提到注释的话,我的建议是要养成一个写注释的好习惯,这样有利于个人后期对代码的理解,也有利于他人对代码的理解。

注释的好处就是在不影响代码的正常运行的前提下,又能便于他人对该代码更加容易理解,读懂。能感受到当初代码创作者的编程思路。

注释的影响

之前也说了,不管你写多少注释,对于你自身的代码而言都不会产生任何影响,因为编译器在处理代码的时候,注释会被删除。
这里简单介绍一下就是一个代码要变成一个可执行程序,需要经历一下步骤:
预处理 -> 编译 -> 汇编 -> 链接
而早在预处理阶段,所有的注释都被删除了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值