第1个回答 2013-05-02
#include<string>
#include<iostream>
using namespace std;
int main()
{
string str="00";
printf("%d\n",&str);
str="abcdeaa34523467hgdfsde";
printf("%d\n",&str);
str="ooo";
printf("%d\n",&str);
return 0;
}
我试了一下貌似不变
在我电脑上都是1244972
第2个回答 2013-05-02
str是一个对象,不是字符数组,对象分配完了,首地址也不会变化。
常量"today"只是一个临时变量,用完就不用了
第3个回答 2013-05-02
前后两次str的首地址没有变化
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/3ac79f3df8dcd1005e57137d738b4710b8122fa7?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
“today”是字符串常量吧 是在代码区的
第4个回答 2013-05-02
String & String::operate =(const String &other) // 输入参数为const型
{
if(this == &other) //检查自赋值
return *this;
delete [] m_data; //释放原有的内存资源
int length = strlen( other.m_data );
m_data = new char[length+1]; //对m_data加NULL 判断
strcpy( m_data, other.m_data );
return *this; //返回本对象的引用
}
原型实现.. 经常做面试题来考.
一看便知.