#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
main()
{
string str1 = "hello world";
string str2 = str1;
string str3 = str2;
printf ("内存共享:\n");
printf ("\tstr1 的地址: %p\n", str1.c_str() );
printf ("\tstr2 的地址: %p\n", str2.c_str() );
printf ("\tstr3 的地址: %p\n", str3.c_str() );
str3[1]='a';
str2[1]='w';
str1[1]='q';
printf ("通过写时拷贝之后:\n");
printf ("\tstr1 的地址: %p\n", str1.c_str() );
printf ("\tstr2 的地址: %p\n", str2.c_str() );
printf ("\tstr3 的地址: %p\n", str3.c_str() );
return 0;
}
/*
//输出结果:
内存共享:
str1 的地址: 83f9017
str2 的地址: 83f9017
str3 的地址: 83f9017
通过写时拷贝之后:
str1 的地址: 83f9017
str2 的地址: 83f9054
str3 的地址: 83f9034
*/