再识C语言(基础篇)

简介: 字符串👏刚看到字符串时,我的第一印象就是一串字符,结果证明我是对的。

字符串👏

刚看到字符串时,我的第一印象就是一串字符,结果证明我是对的。


就像"hello bit .\n",这种由双引号引起的一串字符叫做字符串字面值,就是字符串。但其中还有一些微妙的东西我不曾知道。当我运行一个字符数组时,断点调试打开监视,发现了传说中“看不见的\0”, 即\0是字符串的结束标志,在结尾位置隐藏了一个\0的字符,如下:

image.png

再求一下字符串的长度,用strlen函数计算"hello bit"长度,不难发现长度为9,说明咱的\0只是一个标志,不参与长度计算。strlen函数使用时记得引用<string.h>头文件,我是在这个报错这里卡了一下。

image.png

接下来又设置了两个字符串组做对比,证明\0的存在,我在arr3中撇开了\0因此打印时未遇到结束标志,内存中自动生成了乱码(随机值)以填补空缺。

image.png

转义字符👏

看看转义字符,就是转变了原来的意思,比如我输入一段字符“c:\ test \ test.c”,将它打印出来,发现不会输出一模一样的文本。

image.png

这里的\t不再是一个\字符和一个t字符的组合,他就是一个转义字符了——水平制表。其实还有更有意思的三字母词,“ ??)”会被解析成 " ] ",vs2019不支持这种三字母词于是无法打印。那如果我就想完整打印开始的c:\code\test.c\n呢?可以直接在\test前加上\即可。


那我单独打印一个字符a时这种情况可以执行,那我想打印" ’ “时呢?三个单引号存在时就不是一对单引号里的单引号了而是前面一对单引号+一个单引号。还是用咱”"解决就行。


还有其他的类似\ddd的,由1~3个8进制数组成,比如打印130,结果应该是转变成十进制都88但实际结果是X,这里我们就要引入ASCLL码值;如下(附转义字符表)

image.png

image.png


相关文章
|
6月前
|
C语言
C语言基础练习
C语言基础练习
28 0
|
C语言
C语言基础练习(3)
C语言基础练习(3)
77 2
|
编译器 C语言 C++
进阶C语言——再识结构体
进阶C语言——再识结构体
进阶C语言——再识结构体
|
3月前
|
编译器 Linux C语言
C语言基础
C语言基础
41 0
|
6月前
|
存储 编译器 程序员
C语言基础——C语言常见概念
C语言基础——C语言常见概念
|
算法 搜索推荐 C语言
C语言求凸包的算法及实现
凸包问题是计算几何中的一个重要问题,它描述了一个点集中最小的凸多边形。在本文中,我们将探讨使用C语言来解决凸包问题的算法及其实现。
152 0
|
C语言 C++
0基础初学C语言
0基础初学C语言
116 0
|
6月前
|
存储 算法 C语言
“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“
“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“
|
11月前
|
机器学习/深度学习 程序员 编译器
【C语言入门】C语言常见基础必懂概念(一)函数篇
【C语言入门】C语言常见基础必懂概念(一)函数篇
136 0