引用相当于为对象另起了一个名字。
#include<iostream>
int main()
{
int i = 10;
int& j = i; //引用
int c = i;
i = 5;
std::cout << j << " " << c << std::endl;
return 0;
}
由于j和i都指向同一个对象,因此i的值被改变,那么同样j的值也就改变了。
输出:
指针与引用类似,也实现了对其他对象的间接访问。但也存在区别:
- 指针本身是一个对象,允许赋值和拷贝。
- 指针无需在定义时赋值。
int m = 10;
int* p = &m; //指针
std::cout << p << " " << *p << std::endl;
p存放m的地址,或者说p是指向变量m的指针。
输出:
注意:
int* p1, p2;
p1是指向int的指针,p2是int。