看到c-style 和string的区别
在C++里,
7 string str1 = "hello";
8 string str2(str1);
9 char* p = &str1[1];
10 string str3(str1);
11 printf("%p\n", str1.c_str()); //0x8bbf02c
12 printf("%p\n", str3.c_str()); //0x8bbf044
你就会理解了,因为对str1地址的引用,通过也会修改str3, 所以对str1进行修改 或者 使用[] 这个操作符后(C++对[]进行了重载 ), 后面的赋值都是真正的进行拷贝! 而C在拷贝时就已经真正拷贝了.C怎么办呢.只能自己实现引用计数这套算法,
单纯的进行拷贝 ,C -style效率(没有实现引用计数之前)比不过C++ 的string, 而如果你对字符串修改时, string比不过真正的纯C-style代码了.