博主主页:LiUEEEEE
C++专栏
C语言专栏
数据结构专栏
排序算法专栏
力扣牛客经典题目专栏
目录
- 1、引用的概念
- 2、引用的使用方式
- 3、引用的注意事项
- 3.1、权限的放大(错误示范)
- 3.2、权限的平移
- 3.2、权限的缩小
- 4、结语
1、引用的概念
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。
例如:李逵,在家称为"铁牛",江湖上人称"黑旋风"。
2、引用的使用方式
引用的使用方式为:
- 类型& 引用变量名(对象名) = 引用实体;
例如:
int main()
{
int a = 10;
int& p = a;
cout << "a = " << a << endl;
p += 10;
cout << "a = " << a << endl;
return 0;
}
C++中的引用类似于C语言的指针,但又区别于指针,指针是通过保存变量的地址,间接对其进行操作,而C++中的引用,就可以看作是其本体,可直接对其进行操作。
3、引用的注意事项
在C++中使用引用时,需注意权限的变化,权限只可以平移或变小,不可以变大,下文将对其进行解释。
3.1、权限的放大(错误示范)
int main()
{
const int a = 10;
int& p = a;
cout << "a = " << a << endl;
p += 10;
cout << "a = " << a << endl;
return 0;
}
在引用过程中,若对已经使用 const 保护起来的变量a进行引用,如上图所示,会出现报错,因为变量a的值不可以被改变,而引用者p却是可以改变的,发生了权限的放大,不可取。
3.2、权限的平移
int main()
{
const int a = 10;
const int& p = a;
cout << "a = " << a << endl;
cout << "p = " << p << endl;
return 0;
}
当对前一段代码做如上的更改,即可成功运行,上图中代码的引用也就是权限的平移。
3.2、权限的缩小
int main()
{
int a = 10;
const int& p = a;
cout << "a = " << a << endl;
a += 10;
cout << "a = " << a << endl;
//p += 10;
return 0;
}
当引用时加入了const来修饰,所代表的意思是,不可以通过引用者p对实体a进行操作,但可以通过实体a来改变a的值,如上所示。
4、结语
十分感谢您观看我的原创文章。
本文主要用于个人学习和知识分享,学习路漫漫,如有错误,感谢指正。
如需引用,注明地址。