Perl确实功能很方便阿

To perljoker, Shaver:

其实值传递和写时拷贝, 是2个不必然相关的概念, 把它们关联起来的是C++ string类的相关内部实现(拷贝构造函数等等).


    string str1("abc");
    cout << "str1 = " << str1 << ", str1 address: " << &str1 << ", str1.c_str(): " << (void *)str1.c_str() << endl;
   
    string str2 = str1;  ### 如果没有str2, 那么下面的代码不会改变str1.c_str()的地址.
   
    str1[0] = 'd';
    cout << "str1 = " << str1 << ", str1 address: " << &str1 << ", str1.c_str(): " << (void *)str1.c_str() << endl;


在这里, str1中的char *被改变, 是因为str2引用了这块heap, 对st1来说不得不改.


如果我们自己写一个Class, 用它来做值传递, 那么结果就显而易见了.

哇,再一次谢谢Lonki兄啊,学到很多东西啊,对引用的理解也加深了很多啊
继续学习Perl....