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

C++(16):“”符号

目录

一、取地址运算符(用于变量前)

二、引用声明符(用于数据类型后)

1. 基本引用

2. 函数参数传递

3. 范围for循环修改容器

三、引用 vs 指针

四、关键点总结


一、取地址运算符(用于变量前)

        作用:获取变量的内存地址
        特点:返回指针类型,可与指针配合使用

int main() {int a = 5;int* ptr = &a;  // 取a的地址,赋值给指针ptr*ptr = 10;      // 通过指针修改a的值// 此时 a = 10return 0;
}

二、引用声明符(用于数据类型后)

        作用:为变量创建别名(左值引用),给已定义的变量起别名,不可存在空引用!
        特点:必须初始化、不可为空、不可重新绑定

int main(){int a = 1;int &b = a;&c = b;//变量b和c的类型是“int &”,整型引用cout << b;        //输出10c++;cout << a;         //输出11,C是a的引用(别名),c自增=a自增
}
1. 基本引用
int main() {int b = 20;int& ref = b;   // ref是b的别名ref = 30;       // 等同于 b = 30// 此时 b = 30return 0;
}
2. 函数参数传递

        引用常用于避免拷贝并直接修改实参:

void increment(int& num) {num++;  // 直接修改外部变量
}int main() {int x = 5;increment(x);   // x变为6return 0;
}
3. 范围for循环修改容器
#include <vector>
int main() {std::vector<int> nums{1, 2, 3};for (int& num : nums) {num *= 2;   // 直接修改容器元素}// nums变为{2, 4, 6}return 0;
}

三、引用 vs 指针

特性引用指针
初始化必须初始化可延迟初始化(危险)
空值不可为空可指向nullptr
重绑定不可重新绑定可改变指向
语法操作直接使用(无需*需用*解引用
内存占用无独立内存(别名)占用内存存储地址

四、关键点总结

  1. 引用是别名int& ref = a; 后,refa是同一块内存的两个名字。

  2. 必须绑定实体:引用必须初始化且必须指向已存在的变量。

  3. 函数参数高效传递:引用避免拷贝大型对象(如void func(const std::string& str))。

  4. 不可空特性:引用的安全性高于指针,但牺牲了灵活性。

http://www.xdnf.cn/news/6544.html

相关文章:

  • 【ARM】MDK如何将变量存储到指定内存地址
  • GESP2025年3月认证C++二级( 第三部分编程题(1)等差矩阵)
  • conda创建环境常用命令(个人用)
  • 优雅使用Gunicorn进程管理FastAPI
  • 硬件厂商的MIB文档详解 | 如何查询OID? | MIB Browser实战指南-优雅草卓伊凡
  • 基于MATLAB-GUI图形界面的数字图像处理
  • 深入理解For循环及相关关键字原理:以Python和C语言为例
  • uni-app x正式支持鸿蒙原生应用开发
  • LeetCode Hot100刷题——合并区间
  • docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
  • Ubuntu24.04 安装 5080显卡驱动以及cuda
  • 宇树科技申请 “机器人牌照” 商标,剑指机器人领域新高度​
  • 安装Minikube
  • Redis——底层数据结构
  • Tomcat 配置 HTTPS 访问全攻略(CentOS 环境)
  • WebSocket聊天室的简单制作指南
  • 使用IDEA开发Spark Maven应用程序【超详细教程】
  • JMeter 测试工具--组件--简单介绍
  • 解决CLion控制台不能及时显示输出的问题
  • 盲盒软件开发展望:从“随机消费”到“情感经济”,开启下一代娱乐消费革命
  • Go语言八股文之Mysql锁详解
  • 特征提取:如何从不同模态中获取有效信息?
  • Sprnig MVC 如何统一异常处理 (Exception Handling)?
  • 矫平机技术新维度:材料科学、数字孪生与零缺陷制造
  • 基于Matlab实现图像透明叠加程序
  • CSS- 2.1 实战之图文混排、表格、表单
  • Laravel 参数验证工具
  • 适应于全景Photo Sphere Viewer PHP切图算法
  • 代码随想录60期day38
  • 服务器内部可以访问外部网络,docker内部无法访问外部网络,只能docker内部访问