2 hchchc6016 hchchc6016 于 2016.04.11 21:21 提问

小白关于c++string的疑问

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

4个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.11 21:39
已采纳

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

CSDNXIAOD
CSDNXIAOD   2016.04.11 21:33

C++的疑问
C++疑问
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

stadyhungry
stadyhungry   2016.04.11 23:14

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

beifengche
beifengche   2016.04.12 10:19

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!