小白关于c++string的疑问

string str;
string * p=str.begin();
为什么不能把string的首地址给一个指向string的指针?
那么应该怎么写可以取到指向string首地址的string*类型的指针??

3个回答

str.begin()得到的是指向字符串开头的Iterator
要得到地址的话,直接取地址不就好了?
string str;
string *p = &str;

str.begin()得到的是一个迭代器跟string*不是同一个类型
要得到地址直接取地址就ok,如楼上所言。

c++类型检查十分严格,str.begin()的类型是迭代器不是string*类型。一般把变量转换成指针都是取地址

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!