C++指针引用与常量引用
上节介绍了引用的基本概念。C++引用的基本
本节来介绍指针引用与常量引用。
指针引用
-
之前在讲二级指针的时候说过二级指针可以把函数中的值带出来是吧,现在用指针引用同样能够做到!
定义方式:Type* &name = var
也就是变量类型* &引用名 = 指针名;
#include <stdio.h> using namespace std; int main(){ int a = 100; int* p = &a; int*& q = p; printf("*p = %d, *q = %d\n", *p, *q); return 0; }
输出结果:
*p = 100, *q = 100
-
分别使用二级指针与引用将函数中的值带出来!
#include <stdio.h> using namespace std; void test1(int** p) { int x = 24; *p = &x; } void test2(int* &p) { int x = 56; p = &x; } int main(){ int a = 100; int* p = &a; int*& q = p; test1(&p); printf("*p = %d, *q = %d\n", *p, *q); //使用引用来做 test2(p); printf("*p = %d, *q = %d\n", *p, *q); return 0; }
输出结果:
*p = 24, *q = 24 *p = 56, *q = 56
如果感觉自己二级指针有点搞不清楚,可以使用引用来做,简单明了!
常量引用
-
const赋予变量只读的性质,不可改变。
在C++中可以给引用赋予只读特性,也就是常引用。
语法:const Type& name = var;
-
可以使用引用定义常量(但是没有意义!)
#include <stdio.h> using namespace std; int main(){ int a = 100; const int& b = a; //出现错误,必须是可修改的左值 //b = 19; //下面两种情况等价,但是下面那种毫无意义 const int y = 10; const int& x = 10; return 0; }
本节讲了两种类型的引用,下节讲C++的内存分布!