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

一个简单又奇怪的问题!!!
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共用缓冲区的地址。