当前位置: 首页 > news >正文

C语言的指针与cpp的引用

指针 vs 引用 的相似之处

共同特点:

  • 都是间接访问:都提供了对另一个对象/变量的间接访问
  • 都避免拷贝:传递大型对象时都可以避免昂贵的拷贝操作
  • 都能修改原对象:通过指针或引用都可以修改所指向的对象

具体代码对比

#include <iostream>
using namespace std;void pointerExample() {int value = 10;int* ptr = &value;    // 指针int& ref = value;     // 引用cout << "原始值: " << value << endl;*ptr = 20;  // 通过指针修改cout << "指针修改后: " << value << endl;ref = 30;   // 通过引用修改cout << "引用修改后: " << value << endl;
}void functionParameters() {// 指针作为参数void updateWithPointer(int* ptr) {if (ptr) *ptr = 100;}// 引用作为参数void updateWithReference(int& ref) {ref = 200;}int num = 5;updateWithPointer(&num);  // 需要取地址updateWithReference(num); // 直接传递变量
}

主要区别

特性 指针 引用
语法 *ptr, &var &ref, 直接使用
空值 可以为 nullptr 必须初始化,不能为空
重绑定 可以指向不同对象 一旦绑定不能改变
内存占用 有自己的内存地址 是别名,不占额外内存
数组 支持指针算术 不能重新绑定

使用场景

// 推荐使用引用的场景
void processString(string& str) {  // 修改原字符串str += " processed";
}void printObject(const Object& obj) {  // 避免拷贝,只读访问cout << obj << endl;
}// 推荐使用指针的场景
void optionalParameter(int* optional = nullptr) {if (optional) {*optional = 42;}
}void dynamicAllocation() {int* arr = new int[100];  // 动态内存必须用指针// ... 使用 arrdelete[] arr;
}

现代C++建议

在现代C++中,通常优先考虑使用引用,除非你需要:

  • 处理可选参数(可能为空)
  • 进行动态内存管理
  • 需要重绑定指向不同的对象
  • 与C语言接口交互

引用提供了更安全、更直观的语法,减少了空指针和内存管理的风险。

http://www.sczhlp.com/news/147224/

相关文章:

  • day24——Java高级技术深度解析:单元测试、反射、注解与动态代理 - 指南
  • 湖北大网站建设友链交换平台
  • rp做网站百度贴吧网站开发需求分析
  • 网站弹出式链接后台怎么做安徽网站开发培训
  • 物流管理网站建设wordpress 作者 英文
  • 【征文计划】基于Rokid眼镜平台的AR历史情景课堂创意应用 - 指南
  • 忍了一年,我的SAAS CRM终于到期了!
  • 手机网站建设商场机关网站建设 方案
  • jsp网站开发案例小米新品发布会
  • 彩票网站开发制作需要什么网站建设开发价格
  • 成都搜索优化整站优化net创建网站之后怎么做
  • 山西网站建设多少钱做报纸网站
  • 网站建设工资高吗启业网查询
  • 哪里有免费的网站模板下载 迅雷下载 迅雷下载软件免费自助建网站
  • 网站开发怎样wordpress英文仿站教程
  • 做网站的图片尺寸怎么设定国内医院网站开发现状
  • 全栈网站开发工程师工商网站
  • 成都注册公司核名网站信通网站开发中心
  • wordpress 拿站招商平台网
  • 昆山网站建设昆山深圳网站建设力荐上榜网络
  • 新增网站备案网站平台建设需要注意的是
  • 做专业网站设计多少钱二维码生成器微信小程序
  • 网站建设费用是什么科目wordpress 在线人数
  • 开发商城网站北京网站设计工资多少
  • 建一个公司网站要多少钱系统首页设计图
  • 母线操作术语
  • 佛山网站建设公司排行专业网站发展趋势
  • 做调查挣钱的网站网站后天添加文章不显示
  • 免费网站后台模板外国贸易平台
  • 扁平式的网站兰州网站设计公司哪家最好