string copy on write
阿新 • • 發佈:2018-12-10
#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 */