C ++编程语言中的引用和指针之间的区别

与引用相关的帖子很少是基于指针的,我建议您先阅读它们您尚未阅读),它们是:

  • 引用变量

  • 在C ++中,引用变量比指针变量的优势。

  • 有关C ++中引用变量的事实。

在这篇文章中,我将讨论引用和指针引用变量和指针变量之间区别

由于引用和指针几乎相同,但是它们也几乎没有区别,区别在于:

1)引用是const指针。因此,无法将引用初始化为引用另一个变量,而可以在运行时修改指针。

2)使用指针时,可以使用指向指针的指针,但是对引用的引用并不意味着full。当我们尝试为引用分配引用时,新引用开始引用第一个引用所引用的相同变量。

3)在使用指针时,我们需要使用“地址处的值”运算符(*)显式地取消引用指针,但是对于引用,则不需要这样的引用,因为引用会自动取消引用

参考C ++中的参考演示

#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;

指向C ++中的指针演示的指针

#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中的双指针)

引用比指针的优势

使用指针时,我们需要使用“地址值”运算符(*)显式取消对指针的引用。在使用引用时,由于引用会自动取消引用,因此我们不必使用任何运算符。
详细阅读:引用比指针的优势。

指针优于引用的优势

作为常量指针的引用不能重新分配,而指针可以重新分配。