读书人

一个简单又奇怪的有关问题!

发布时间: 2012-10-16 09:57:37 作者: rapoo

一个简单又奇怪的问题!!!
string s1("cba");
string s2(s1);
char *s = const_cast<char *>(s2.c_str());
s[0] = 'f';
cout << s1 << endl;
这个输出多少?

[解决办法]
g++ 4.4.3所用的标准库libstdc++使用了COW(写时复制)技术,所以楼主代码中s2.c_str()返回的仍是s1和s2共用缓冲区的地址。

读书人网 >C++

热点推荐