string s("hello world"); string *sp=&s; 为什么不能用string *sp=s;呢?
string是个唯雀类,
s是个指则早对象,
string *sp中的sp是个string*类型的指盯巧针。
给string*类型的指针sp赋值,就要用string的对象s的地址,也就是&s。
因为string *sp,是在定义一个指针,指针里面存放的是内存地址,所以不行的
sp是s的指针
其实string *sp = &s;这句代码是定义一个指针并且初始化它。
初始化的意思就是声明和赋值。
声明的意思:比如 int a;但是没有赋值,所以不能直接使用。
赋值:int a;//声明 a = 1; //赋值 这是分开写。
一起写就团扰是 int a = 1;// 这就是初始化一个变量
因为*sp是一个指针,所以你初始化它的时候不能赋值给他 string类型变量,裤或滑必须是内存地址或者输入0.而&s就是变量s的内存胡腊地址,所以前面是对的