C++ char[] char* string 三者都需要结束符吗?是赋值时手动添加还是系统默认末尾加结束符?

2025-04-05 09:10:11
推荐回答(3个)
回答1:

char[] 中可以存\0,但是存了\0之后你需要使用单独的变量来记录字符串的长度,
且不能使用strlen,strcpy, strcat等函数对该字符串进行操作,因为这些函数都是通过
\0来判断字符串是否结束的。

回答2:

你是说一个字符数组么,而不是一个字符串,如果是字符数组的话,最后一个不是\0也没有关系,但是如果是字符串的话就必须是了...举例如下:
char a[4]={'a','b','c','d'};
char b[4]="abcd";
前一个是定义了一个字符数组,这么初始化是正确的,但是第二个是个字符串,那么就出错了,因为系统默认最后一个是\0,这样,元素个数就越界了...
char[]当然能存\0了,\0本身也是一个字符啊,哪有字符型数组不能存字符之说..

回答3:

char[]能存\0