1、引言
在C++使用中,经常会用到引用reference和指针point。下面将用示例说明,引用和指针的区别。
2、示例代码
int _tmain(int argc, _TCHAR* argv[])
{
int x = 2;
int* p = &x; //p指向x
int& r = x; //r代表x,r是x的别名
cout << x << endl; //#1输出:2
cout << p << endl; //#2输出:0113FE4C
cout << r << endl; //#3输出:2
cout << &x << endl; //#4输出:0113FE4C
cout << &p << endl; //#5输出:0113FE40
cout << &r << endl; //#6输出:0113FE4C
int x2 = 5;
r = x2;
cout << x << endl; //#7输出:5
cout << r << endl; //#8输出:5
return 0;
}
注意点:
a、C++中通常说的指针是指针变量,声明一个指针即创建一个可以存放地址的变量;而引用是针对已有变量而言,是已有变量的一个别名,即可以用引用代码已有变量;
b、#2中指针变量p,输出的是p的值,而p存放的是x的地址;而引用#3输出的就是代表变量x;
c、#5和#6分别对指针和对引用取地址,一个是指针变量p的地址,另一个是x的地址(结果与#4相同);
d、引用只能代表一个变量,如示例中r已经代表了x,后面就不能代表x2,即对r做更改,会改变先前x的值。