分两种情况:
第一种就是当该指针声明为int 型指针时,
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int *p;
int n;
scanf("%d",&n);
p=&n;
cout<<"p="<<*p<<endl; //<------------
}
这时候p为所指变量的地址,*p为该地址中的数值;
第二种情况:
当该指针被声明为char型指针的时候, //浅拷贝
#include<iostream>
#include<string.h>
using namespace std;
class STRING
{
public:
STRING(char *s)
{
cout<<"constructor called"<<endl;
ptr=new char[strlen(s)+1];
strcpy(ptr,s);
}
~STRING()
{
cout<<"Destructing called---"<<ptr<<endl; //<——————
delete []ptr;
}
private:
char *ptr;
};
int main()
{
STRING p1("book");
STRING p2("jeep");
p2=p1;
return 0;
}
输出的ptr为以ptr为首地址的整个内存中的内容 book
*ptr 为ptr【0】 的内容 b