C++——C风格字符串
C语言中没有原生的string类型,应用char数组或是char指针来代替
一个字符串有如下几种方式来表示和初始化
第一种
char array[4] = {'a','b','c'};
字符串是从char数组的开头开始,一直到首次读到的'\0',也就是空字符为结束。所以若要用char数组来表示字符串,一定要记得带'\0',否则这个字符串的结尾会到处乱跑。我们可以显式地加上’0‘,也可以把最后一个位置留空,默认初始化为'0'
第二种
const char *ptr = "abc";
用""来包裹一段字符串时,我们叫这段字符串string literal,""代表着取这段字符串的地址,并且自动在字符串最后加了0,指针就指向这块内存的首地址
值得注意的是,这个指针最好(但没有硬性要求)声明为const,因为string literal不能被更改,故意更改会得到segmentation fault
第三种
char array[4] = "abc";
第三种与第二种不同的是,用string literal初始化char数组时,发生了拷贝操作,把string literal的内容从原来的地址,拷贝到了数组的地址,所以实际上现在我们有两份同样的字符串。在数组的地址下,我们就可以随意对字符串继续修改,而不像第二种一样被限制,但是要注意拷贝会带来性能损耗

浙公网安备 33010602011771号