C++ 中定义char 数组
char ca1[] = "name";
此时没有指定数组长度,则实际ca1的内存占用为5个字符 name + /0字符
char ca2[4] = "name";
这种定义方式会报错,实际长度超出指定长度,赋值失败,编译器会报错,原因为尾部需要加/0
此格式为C风格字符串 C语言在字符串尾部加0作为字符串结束符
char ca3[6] = "name";
多出来的长度全部 为0
动态创建char数组
当数组长度为 变量时 需要使用动态创建的方式
char *s1 = new char[x + 1];
同样需要把长度+1 使结束符0 有位置可储存
延申
C++ 字符串模板 string 中不以0为结束符
网友评论