章节目录
- 前言
- 一、字符串的概念
- 验证字符串后面的斜杠0
- 二、什么是转义字符
- 三、C语言中的不同注释
- 1. C语言中的注释风格
- 缺陷
- 2. C++中的注释风格
- 总结
前言
哈喽,各位铁汁们好啊!✨今天来给大家带来的是初识
C语言
里面的转义字符
和注释
。
《入门C语言篇》主要带大家简单认识-一下C语言,俗话说没吃过猪肉,也见过猪跑。
带大家了解下C语言。可以读懂C语言的简单程序,后面博主会给大家出《C语言初级》加进阶知识,逐渐走上编程之路。
一、字符串的概念
什么是字符串?
"hello bit.\n"
这种由
双引号
(Double Quote)引起来的一串字符
称为字
符串字面值(String Literal),或者简称字符串。
- 注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,
不算作字符串内容。
这里可能有些同学会问了怎么知道字符串是\0
,为结束标志的呢?
我们来看一下下面这段代码:
int main(){//"abcdef";//char ch1 = 'a';//char ch2 = 'b';//char ch3 = 'c';char arr[]="abcdef";return 0;}
大家看我们想存储字符串
“abcdef”
该怎么存储呢?
- 我相信各位宝子们第一个想到肯定是说,博主那不是很简单吗?
- 直接用字符类型变量然后一个个输出不就完了,有什么难的。
可是大家想这样是不是太麻烦了,然后每一个字符串都这样存储,那么200个字符的字符串我们岂不是要定义200个字符变量
那怎么办呢?这里给大家简单讲一下字符数组的概念:
前说了如果字符串里面字符元素过多,我们就不好用字符变量来存储了。
而数组刚好可以解决我们这个问题。
- 数组是相同类型元素的集合
- 那么我们把数组定义成字符类型的元素不就行了
int main(){char ch[] = {'a', 'b', 'c', 'd', 'e', 'f'};char ch2[] = "abcdef";return 0;}
大家可以看到这里使用了,俩总方式来
初始化
字符类型的数组
- 第一种:
单个字符
存储到字符类型的数组里面。- 第二种:以
字符串
直接,存储到字符类型的数组里面。
我们用VS2022来观察一下俩个字符数组存储的有什么区别。
这里是不是可以看到直接存储字符串进去末尾带带了一个\0
说明了字符串是以\0为结尾的。
\0是字符串结束的标志
验证字符串后面的斜杠0
前面一章变量这个章节,博主跟大家说了打印字符串用的是%s
int main(){char ch[] = {'a', 'b', 'c', 'd', 'e', 'f'};char ch2[] = "abcdef";printf("%s\n", ch);printf("%s\n", ch2);return 0;}
注:
给大家解释一下printf这个函数
printf以%s打印字符串的时候是
从你给的地址一直向后打印,直到遇到\0
所以我们来看一下区别
这里就可以看到由于字符数组 ch
存储的是单个字符元素没有 \0
所以printf就在往后一直打印,直到到找到字符\0
所以后面打印了一堆乱码
而字符数组ch2,最后一个存储的是\0,所以打印到\0就不打印。
再来用 s t r l e nstrlenstrlen 库函数来读取一下这俩字符数组的长度
注:
给大家解释一下strlenstrlen strlen这个函数
用的时候要引用头文件#include
从你给的地址一直向后计数直到遇到\0结束
#include int main(){char ch[] = {'a', 'b', 'c', 'd', 'e', 'f'};char ch2[] = "abcdef";int len1 = strlen(ch);printf("%d\n", len1);int len2 = strlen(ch2);printf("%d\n", len2);return 0;}
所以大家明白为什么输出的是这俩个,字符个数吧!
- 因为字符数组
ch
,没有结束符号\0
。所以计算的字符长度是个随机值
- 而
ch2
有\0
字符串,结束的标志。所以读取的字符个数是6
二、什么是转义字符
转义字符
转义转义
说明:
它的意思就是转变他原本的含义
废话不多说各位铁汁看代码。
//转义字符 - 转变原来意思int main(){printf("(are you ok\" />);//are you ok]//??) - 三字母词--> ]return 0;}
printf(“(are you ok??)”);
这个代码在以前的编译器中输出的结果是
are you ok]
为什么呢?因为
- ??) 这3个符号组合在一起在以前的编译器会被认为是
- 三字母词 意思就是把??) 转变成] 这个符号
再来看一组代码
int main(){printf("ab\ndef");return 0;}
我们的本意是输出ab\ndef这串字符
可实际输出的却是
- 这是因为
\ + n
把\n
原本的含义该转变成换行符了 \n
原本只是俩个字符
大家明白了没有
那么可以用下面这段代码练习一下- 数一数有多少个字符
int main(){printf("c:\\test\\test.c");return 0;}
下面给大家看一下C语言的转义字符表
三、C语言中的不同注释
1. C语言中的注释风格
int main(){/** C语言注释风格 - 不支持注释嵌套* 下面代码是创建一个整型变量并赋值0*/int b = 0;printf("%d\n", strlen("abcdef"));return 0;}
缺陷
一旦嵌套了他所对应的/*
就不会和最近的 */
匹配
/*int main(){/** C语言注释风格 - 不支持注释嵌套* 下面代码是创建一个整型变量并赋值0*/int b = 0;printf("%d\n", strlen("abcdef"));return 0;}*/
大家看上面被注释了但是下面的
*/
匹配不上了
2. C++中的注释风格
int main(){//以//开头的注释是属于C++注释风格//注释//strlen是一个库函数//计算的是\0之前出现的字符的个数//int b = 0;printf("%d\n", strlen("abcdef"));return 0;}
- C++的注释方法是支持嵌套的
- 所以在代码段注释我们一般推荐这种
总结
好了今天主要是带大家认识字符串、转义字符和注释
总结一下今天学了:
字符串
字符串的结束标志
转义字符
C语言的注释风格
C++的注释风格
不知道大家掌握了没有,希望对各位铁汁有用呢!
看到这里了还不给博主扣个点赞
加收藏
!
❤️
拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。