分两种情况:
第一种就是当该指针声明为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