1.pointer既可以指向一个对象又可以指向NULL,但reference必须指向一个对象;
例如:char *p=NULL;//可以
char &p=NULL;//错了
2,reference不用判断是否为空,但pointer要。
例如:void print(const int &p)
{cout<<p;}
void print(const int *p)
{if(p) cout<<*p;}
3,pointer可以重新赋值,但reference总是指向最初获得那个对象。
例如:string s1("name1");
string s2("name2");
string &p1=s1;
string *p2=&s1;
p1=s2;//p1还是指向s1
p2=&s2;//p2指向s2
4,最好总是令operator[]的返回值为reference
例如vector<int> v(10);
v[5]=10;
如果operator[]返回pointer,则上面的v[5]=10要学成*v[5]=10;
本文详细阐述了指针和引用的区别,并通过实例展示了它们在C++编程中的使用方式,包括指针的重新赋值、引用的特性、操作符返回引用的重要性以及不同场景下的应用。

8036

被折叠的 条评论
为什么被折叠?



