关于浅拷贝和深拷贝这个问题遇上的次数不多,这次遇上整理一下,先说这样一个问题,关于浅拷贝的问题,先从最简单的说起。
假设存在一个结构体:
struct Student
{
string
name;
int age;
};
这样一个最简单的问题
然后执行:
struct
Student stu = {"liming",
18};
struct
Student stu2 = {"wanger",
20};
stu2 = stu;
cout<
"<< stu2.age
<
cout<
:"<<
stu2.name<
这样可以看到的结果是:
age is : 18
name is :liming
说明此时的拷贝是成功的,此时的结构体可以通过“=”来直接进行赋值操作,但是接下来的问题产生了,假设存在如下的结构体:
struct stu
{
int i;
char c;
char* p;
};
执行下面的程序:
struct
stu s1,s2;
char * str = "rabbit is
cute&#