目录
像上一张图片初始化数组,我们不用开始就定义长度。但如果我们定义长度,不知道这个概念,会导致报错。
字符串本身自动带\0吗?
首先 一个字符串例如“abcd”,其在存储空间里是有一个\0的,那我们先来看一下这个代码
按理来说,如果它包含有\0,不是应该输出5吗?那是说它没有\0吗?事实是:
不论输入多少的字符,输出的都是4。
sizeof(a) 返回的是指针 a 的大小,而不是字符串的长度。这里a 是一个指向字符串常量的指针,它在内存中只占据一个指针的大小,而不管字符串的长度是多少。
它输出的是指针的类型的大小。
结论是:这与字符串本身长度无关,字符串的\0还是存在的。
接下来我们来验证\0的存在
只要选择可以反映字符串的长度而非反映指针的
答案是:数组
于是类似地我们写了如下代码:
它输出了5,证明了我们字符串后面\0的存在
为什么它冷门而我们又必须知道
像上一张图片初始化数组,我们不用开始就定义长度。但如果我们定义长度,不知道这个概念,会导致报错。
写在最后:有点标题党了哈哈,但是求解过程很有意思哇,自学一些语法呢是可以用这样的探究方法的。