C++ 中引用和指针的关系实例详解

发布时间 - 2026-01-11 02:00:24    点击率:

C++ 中引用和指针的关系实例详解

1.引用在定义时必须初始化,指针没有要求

int &rNum; //未初始化不能通过编译 
int *pNum; //可以 

2. 一旦一个引用被初始化为指向一个对象,就不能再指向

其他对象,而指针可以在任何时候指向任何一个同类型对象

int iNum = 10; 
int iNum2 = 20; 
int &rNum = iNum; 
&rNum = iNum2; //不能通过 

3. 没有NULL引用,但有NULL指针。

int *pNum = NULL; //可以 
int &rNum = NULL;//不可以 

4. 在sizeof中含义不同:引用结果为引用类型的大小,

但指针始终是地址空间所占字节个数。

char c1 = 1; 
char* pc = &c1; 
char& rc = c1;
cout<<sizeof(pc)<<sizeof(rc)<<endl; //输出4 1 

5. 引用自加改变变量的内容,指针自加改变了指针指向

rNum++; //指针的内容改变 
pNum++; //指针改变 

6. 有多级指针,但是没有多级引用

int &&rNum ; //不可以 
int **ppNum; //可以 

7.引用比指针使用起来相对更安全

指针和引用的底层实现

int Num = 10;
012213BE mov     dword ptr [Num],0Ah 
int &rNum = Num;
012213C5 lea     eax,[Num] 
012213C8 mov     dword ptr [rNum],eax 
int *pNum =&Num;
012213CB lea     eax,[Num] 
012213CE mov     dword ptr [pNum],eax 

底层的实现方式相同,都是按照指针的方式来实现的

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C++  # 中引用和指针的关系  # 引用和指针  # 深入学习C++智能指针之shared_ptr与右值引用的方法  # 实例详解C++中指针与引用的区别  # C++ Primer注解之引用和指针  # C++常量详解一(常量指针与常量引用的初始化)  # C++指针与引用的区别案例详解  # 不可以  # 都是  # 就不  # 希望能  # 任何一个  # 谢谢大家  # 来实现  # 所占  # 能再  # 改变了  # iNum  # strong  # NULL  # pNum  # int  # amp  # cpp  # class  # brush  # br 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何选择可靠的免备案建站服务器?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  如何在景安服务器上快速搭建个人网站?  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何在云主机上快速搭建网站?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  javascript日期怎么处理_如何格式化输出  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel如何实现事件和监听器?(Event & Listener实战)  简单实现jsp分页  Laravel观察者模式如何使用_Laravel Model Observer配置  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  javascript中对象的定义、使用以及对象和原型链操作小结  成都网站制作公司哪家好,四川省职工服务网是做什么用?  如何在腾讯云服务器快速搭建个人网站?  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  LinuxCD持续部署教程_自动发布与回滚机制  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  怎么用AI帮你设计一套个性化的手机App图标?  Laravel怎么实现验证码(Captcha)功能  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  常州企业网站制作公司,全国继续教育网怎么登录?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何在阿里云部署织梦网站?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  如何在自有机房高效搭建专业网站?  Laravel如何使用.env文件管理环境变量?(最佳实践)  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  如何在建站主机中优化服务器配置?  如何用花生壳三步快速搭建专属网站?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何在橙子建站上传落地页?操作指南详解  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel如何实现本地化和多语言支持?(i18n教程)