字符串构造通过执行获得数据空间
new char[strlen(cp)+1];
由于字符串中只有strlen(cp)
字符,所以额外的字节是什么?
对于表示字符串结尾的特殊'\0'
字符。
(请记住,C 风格的字符串是以null 结尾的数组)。
其他有用的说明:
strlen
不计算'\0'
(这就是为什么你需要这个额外的字节)。strcpy
确实复制'\0'
.char str[7] = "String";
-'\0'
自行添加。char str[] = {'S','t','r','i','n','g'}
-不添加'\0'
。char str[7] = {'S','t','r','i','n','g'}
- 将添加'\0'
。在基于 C 的字符串中,字符串末尾总是有一个特殊字符,'\0'
它也需要一个额外的字节。这就是为什么我们需要一个额外的字符并且我们需要数组strlen(str)+1
来存储字符串。