【C/C++】引用的本质是指针常量

在c++内部,**引用的本质是一个指针常量,**如 int * const ref = &a。引用一旦初始化后,就不可以改变指向。

指针常量,int * const ref = &a; const修饰的是 "ref "–> , ref 的值不可以改,即指针变量ref 的指向不可以改,ref = &b非法。但指针变量ref 指向的对象的值可以改,即*ref = 100合法。


讲解示例:

//发现是引用,转换为 int* const ref = &a;
void func(int& ref){
	ref = 100; // ref是引用,转换为*ref = 100
}
int main(){
	int a = 10;
    
    //自动转换为 int* const ref = &a; 指针常量是指针指向不可改,也说明为什么引用不可更改
	int& ref = a; 
	ref = 20; //内部发现ref是引用,自动帮我们转换为: *ref = 20;
    
	cout << "a:" << a << endl;
	cout << "ref:" << ref << endl;
    
	func(a);
	return 0;
}

【C/C++】引用的本质是指针常量_第1张图片

结论:C++推荐用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作编译器都帮我们做了。




你可能感兴趣的:(【C/C++】,开发语言,c++)