C++中的指针问题
#include<iostream>#include<string>
using namespace std;
class person
{
private:
char *buff;//buff是一个指向char型,或者char型数组的指针,buff内装变量的地址(数组的首地址),*char应该为内容
public:
person(const person &me);
person(char *mess); //同上
void display();
};
person::person(const person &me)
{
buff=new char[strlen(me.buff)+1]; //类的数据成员是*buff,这里为什么是//me.buff,me.buff应该是地址,地址的strlen是什么意思?
strcpy(buff,me.buff); //两个地址相互copy?
}
person::person(char *mess)
{
buff=new char[strlen(mess)+1]; //问题同上
strcpy(buff,mess);
}
void person::display()
{
cout<<buff<<endl; //输入的buff,地址?
}
void main()
{
person p1=person("aaaaa");
person p2=person(p1);
p1.display();
p2.display();
}
我这里不懂的是字符型指针的用法,*buff,buff的意义,理解不了这段程序中的用法