C++中对于string类型的变量进行连续两次赋值,如 string str="today";str="tomorrow"; 前后两次赋值str的
5个回答
展开全部
#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
#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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
str是一个对象,不是字符数组,对象分配完了,首地址也不会变化。
常量"today"只是一个临时变量,用完就不用了
常量"today"只是一个临时变量,用完就不用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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; //返回本对象的引用
}
原型实现.. 经常做面试题来考.
一看便知.
{
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; //返回本对象的引用
}
原型实现.. 经常做面试题来考.
一看便知.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询