C++中引用和const关键字怎么用
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,今天小编给大家分享一下C++中引用和const关键字怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2025年02月23日C++中引用和const关键字怎么用
今天小编给大家分享一下C++中引用和const关键字怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
引用
下面的写法定义了一个引用,并将其初始化为引用某个变量。
类型名 & 引用名 = 某变量名;
int n = 4;int & r = n; // r 引用了n,r的类型是 int &
某个变量的引用,等价于这个变量,相当于该变量的一个别名。
int n = 7;int & r = n; // r 引用了n,r和n就是一回事r = 4;cout << r; // 输出4cout << n; // 输出4n = 5;cout << 4; // 输出5
定义引用时一定要将其初始化成引用某个变量。
初始化之后,它就一直引用该变量,不会再引用别的变量了。
引用只能引用变量,不能引用常量和表达式。
double a = 4, b = 5;double & r1 = a; // r1引用了adouble & r2 = r1; // r2也引用了ar2 = 10; // a修改为10cout << a << endl; // 输出10r1 = b; // 用b的值对r1进行赋值,并非r1改为引用b,因为引用是"从一而终"的cout << a << endl; // 输出5
常引用
定义引用时,前面加const关键字,即为"常引用"。
int n;const int & r = n; // r的类型是const int &
不能通过常引用去修改其引用的内容:
并不是说引用的内容不能被修改
int n = 100;const int & r = n;r = 200; // 编译错误n = 300; // ok
常引用和非常引用的转换
const T &和T &是不同的类型。
T &类型的引用或T类型的变量可以用来初始化const T &类型的引用。
const T类型的常变量和const T &类型的引用则不能用来初始化T &类型的引用,除非进行强制类型转换。
const关键字用法
1)定义常量
const int MAX_VAL = 23;const double PI = 3.14;const string NAME = "Tommy";
2)定义常量指针
不能通过常量指针修改其指向的内容,但内容本身可以被修改,且常量指针的指向可以变化。
int n, m;const int *p = &n;*p = 5; // 编译错误n = 4; // okp = &m; // ok,常量指针的指向可以变化
不能把常量指针赋值给非常量指针,反过来可以。
const int *p1;int *p2;p1 = p2; // okp2 = p1; // errorp2 = (int*)p1; // ok,强制类型转换
[注] 因为常量指针对其所指向的内容没有修改权限,自然也不能赋予别的指针这样的权限。否则,非常量指针接收常量指针的赋值之后,便可以修改所指向的内容了,这存在一定安全隐患。
函数参数为常量指针时,可避免函数内部不小心改变参数指针所指地方的内容。
void MyPrintf(const char *p){ strcpy(p, "this"); // 编译出错 printf("%s", p); // ok}
3)定义常引用
不能通过常引用修改其引用的变量
int n;const int & r = n;r = 5; // errorn = 4; // ok
以上就是"C++中引用和const关键字怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
变量
类型
指针
常量
内容
指向
输出
关键
关键字
知识
篇文章
编译
C++
不同
函数
参数
就是
权限
错误
面的
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
三级信息系统的网络安全
战术战队服务器怎么进
东南大学空间网络安全研究生
数据库应用与技术 教学
ocam录屏软件开发者
普法网络安全手抄报
华为服务器管理网口在哪
服务器vc什么意思
电脑怎么安装服务器上的金蝶软件
政府网络安全知识讲座
网络安全实用扫描工具开发
网络安全感知设备的重要性
陕西服务器机柜哪里买
个人电脑服务器异常
城商联盟软件开发面试
数据库调用文章 discuz
软件开发难学不难
博客开发数据库设计
固网打印服务器 客服
服务器操作系统linux占比
战术战队服务器怎么进
服务器下线管理
江西无线网络技术口碑推荐
方舟服务器管理负重
网络安全与执法委员会
富国互联网科技基金怎么样
网络安全等级保护申请条件
vb编程adodc数据库
我国网络安全法公布时间
软件开发可以举办什么节目