虽然这个拟人手法用的挺那啥,但是我觉得还挺贴切的。
你觉得呢?
欢迎浏览后发表自己的看法!
目录
一、字符
(一)概念
其实字符理解起来超级简单,就是在键盘上能打出来的a,q,@,#,等等。这些符号都被称为字符。
(二)实际操作
C语言中字符是用单括号括起来的,如:'a','b','@'。字符数组里单引号括起来的,也是字符。(字符数组,可以参考图a中的arr1)
单个字符的打印可以使用%c来指定格式:
二、字符串
(一)概念
使用双引号括起来的⼀串字符就被称为字符串,如:"abcdef",这就是一个字符串。
(二)实际操作
1.字符串的打印格式可以使用%s来指定,也可以直接打印:
2.C语言中也可以把一个字符串放在一个字符数组中,就像这样:
但是,一旦进行开始调试,能打印在屏幕上的,除了我们想要的abcd,还有一些随机值。
(如下图所示)
为什么还会有一些随机值呢?还请继续往下看。
三、\0对字符串特殊照顾,但对字符就不太行了
字符串的末尾会隐藏着一个\0字符。这个\0字符呢,则是字符串的结束标志。
什么叫做字符串的结束标志?
请看一下面的解释:
对于字符串"abcd",我们看到的是四个字符:a,b,c,d。但实际上末尾还隐藏着一个\0的转义字符。
在使用库函数printf()打印字符串"abcd"时,一遇到\0打印就会停止,所以屏幕上只会打印出abcd。
可惜,\0对字符串特殊照顾,但对字符就不太行了
接下来我用图a和图b说话。这里加入字符串作为对照组:
图a
图b
大家可以从图a和图b中看出,arr1字符数组在打印abc的时候,还打印了一些随机值,这是因为arr1字符数组在末尾的地方没有\0作为结束标志,因此在打印到c时还在继续打印,直到碰到不知道藏在哪里的\0。
arr2字符串的打印就是完全正常的,这是因为数组中有\0作为技术标志,打印可以正常停止。
看得出来\0对字符串和字符进行的区别对待了吗?
然后我又有个疑问了:要是我把\0单独放进字符数组中,它还能像上面那样藏起来找不到吗?
我试了试,看来不行。图c和图d是两张证据:
图c
图d
大家可以从图c和图b中看出,单独加了个\0后,arr3字符数组打印到 \0 的时候就停⽌了。
四、小结
所以,大家想打印字符数组时,记得单独再加个\0——永远都不能忘记被区别对待——除非你就是要随意(值) 。
关于printf函数和stdio.h,需要的可以看这个:C语言:工具人printf-CSDN博客
关于main函数,需要的可以看这个:C语言:“奇异”main函数-CSDN博客
暂时介绍到这里,后续有的话会继续补充。
标签:abcd,字符,区别对待,打印,C语言,兄弟俩,数组,字符串 From: https://blog.csdn.net/2401_82886759/article/details/136784068