引用
通过:
int &ra = a;
创建一个a的引用。
引用必须被初始化
否则编译报错。
int &ra; //错误:‘ra2’声明为引用却未被初始化
可以引用一个对象,也可以引用一个引用
int &ra = a;
int &raa = ra;
最终,ra和raa引用都代表了a对象。
引用和值传递
采用引用和指针的方法传递参数,不会像值传递时对整个要传递的对象进行复制,可以提高运行效率。 比如,当我们只想打印出vector中的每个元素时,就可以采用传址的方式。
void display(const vector<int> &vec)
{
for(int i = 0; i < vec.size(); i++)
{
cout << vec[i] << ' ';
cout << endl;
}
}
采用reference to const vector,明确的告诉读者,我们采用传址的方式传递vec,为的是避免复制操作,并不是为了改变其中的值。
引用和指针
引用和指针除了用法不同(指针需要提领),更为重要的差异是,引用必然固定的代表某个对象,所以不需要进程判0;而指针可能不指向一个对象,如果指针指向0,对其提领会产生程序崩溃。
文档信息
- 本文作者:Iven Li
- 本文链接:https://lutcraft.github.io/2023/07/26/C++%E5%9F%BA%E7%A1%80-%E5%BC%95%E7%94%A8/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)