今天看书时发现一个小问题:
string s1("hi lily");
string *p;
p=&s1;
cout<<*p<<s1;
*p="hi mary";
cout<<*p<<s1;
//*p="hi mary"是先让*p=s;再s=“hi mary”
//这个时候*p的值和是s1的值都会改变成“hi mary”
//如果再加上以下语句:
string s2("hi jim");
p=&s2;
cout<<*p<<s1<s2<<endl;
//会发现s1值仍为hi mary ,而*p的值变为了hi jim
查阅资料后发现:如果对左操作数进行解引用,则修改的是指针所指对象的值;如果没有使用解引用操作,则修改的是指针本身的值