副标题#e#
在C++中,&这个标记有两个寄义,一种寄义是取某个变量可能工具的地点。这个地点是指内存地点,这个地点取到之后,可以赋给一个指针。譬喻下面这样
int a=5;
int *p=&a;
这就暗示,有一个变量为a,其值为5,然后有一个指针变量p,它生存了变量a的地点。
但C++中,&尚有一个用途是界说引用常量。引用其实就相当于是一个变量的别名,从它的成果上说与指针很雷同,但利用起来较量轻便。
我们先来看如何界说一个引用
int a=5;
int &b=a;
这就暗示,有一个变量为a,其值为5,然后有一个引用变量b,它引用了变量a。实际上此时两个变量的操纵城市影响到互相,因为它们所利用的内存是一样的。
int main()
{
int a=5;
int &b=a;
cout<<&a<<endl;
cout<<&b<<endl;
return 0;
}
#p#副标题#e#
那么,引用与指针对比有什么大的区别呢?依我看,主要是利用起来较量利便
为了说明这个问题,我用下面的典型做了表明
#include <iostream>
using namespace std;
class human{
public:
void Talk();
};
void human::Talk(){
cout<<"Hello"<<endl;
}
int main()
{
human h;//建设一个human工具
human *p=&h;//建设一个指针,指向该human工具的地点
p->Talk();//挪用该human工具的Talk要领
(*p).Talk();//可能也可以这样写
human &h1=h;//建设一个引用
h1.Talk();//可以直接挪用Talk要领
cout<<"h的地点是:"<<&h<<endl;
cout<<"p的地点是:"<<p<<endl;
cout<<"h1的地点是"<<&h1<<endl;
return 0;
}