与引用相关的帖子很少是基于指针的,我建议您先阅读它们(您尚未阅读),它们是:
引用变量
在C ++中,引用变量比指针变量的优势。
有关C ++中引用变量的事实。
在这篇文章中,我将讨论引用和指针(引用变量和指针变量)之间的区别。
由于引用和指针几乎相同,但是它们也几乎没有区别,区别在于:
1)引用是const指针。因此,无法将引用初始化为引用另一个变量,而可以在运行时修改指针。
2)使用指针时,可以使用指向指针的指针,但是对引用的引用并不意味着full。当我们尝试为引用分配引用时,新引用开始引用第一个引用所引用的相同变量。
3)在使用指针时,我们需要使用“地址处的值”运算符(*)显式地取消引用指针,但是对于引用,则不需要这样的引用,因为引用会自动取消引用。
#include <iostream> using namespace std; int main(){ int a=100; int &b=a; int &c=b; //参考参考 cout<<"b: "<<b<<",c: "<<c<<endl; return 0; }
输出结果
b: 100,c: 100
在上面的示例中,c引用参考b,b和c均引用变量a;
#include <iostream> using namespace std; int main(){ int a=100; int *pa = &a; int **ppa = &pa; cout<<"pa: "<<pa<<", ppa: "<<ppa<<endl; return 0; }
输出结果
pa: 0x7fff27d716e4, ppa: 0x7fff27d716d8
在此示例中,pa指向a的地址,而ppa指向pa的地址。
阅读更多:指针到指针(C中的双指针)
使用指针时,我们需要使用“地址值”运算符(*)显式取消对指针的引用。在使用引用时,由于引用会自动取消引用,因此我们不必使用任何运算符。
详细阅读:引用比指针的优势。
作为常量指针的引用不能重新分配,而指针可以重新分配。