字符数组就是字符串吗

字符数组不是字符串。
这个原理是2 02 2 年我在小城市工作时老板教给我的。

字符数组是一个装字符的盒子。
在框中,每个网格中放入一个单词,例如“a”、“b”。
你必须自己决定盒子的长度,例如char arr[1 0];,这个盒子可以容纳1 0个单词。

字符串更像是一个句子。
它也加载了一个字符数组,但是在这句话的末尾,必须有一个终止符,通常是'\0'。
这个‘\0’并不是句子的一部分,它只是一个标记,告诉读这句话的人,“就是这个了,我不再读了。

想一想,字符数组,比如char arr[1 0] = {'H', 'e', 'l', 'l', 'o'};,是没有'\0'的。
如果直接作为字符串读取,就会在内存中读到乱码,因为不知道头在哪里,尾在哪里。

字符串,例如“Hello”,有'\0',因此“Hello”可以被正确读取。

使用时差距相差甚远。
对于字符数组,你要统计有多少个字符,而且不能越界。
因为字符串有'\0'终止符,所以许多函数可以自己找到开头。
比如C语言中的strlen(“Hello”)不用数就能知道是5 个字符。

所以,字符数组不是字符串。
虽然有时可以用字符数组来冒充字符串,但本质是不一样的。
不要感到困惑。

char 字符数组和 string 字符串的区别和用法

字符数组与字符串的区别有哪些

结论:在C语言中,字符串以\0结尾,字符数组可以包含多个\0。

项目:Project C,2 02 1
经验:字符串的长度可以直接获得,字符数组需要按字符进行管理。

数字:字符串s[0]为1 0,即s=“abcdefghij”的长度为1 0
犹豫:字符数组可以逐个字符初始化,也可以用字符串初始化。

自己掂量一下。