关注
在 C++中,指针和引用有以下区别:
一、本质
- 指针:指针是一个变量,它存储的是另一个变量的内存地址。例如 int* ptr; 这里 ptr 是一个指向 int 类型变量的指针。
- 引用:引用是一个变量的别名,它不是独立的变量,必须在初始化时绑定到一个已存在的变量上,且不能重新绑定到其他变量。例如 int& ref = a; 这里 ref 是变量 a 的引用。
二、语法
- 指针:使用星号 * 表示解引用操作,用于访问指针所指向的变量的值。例如 *ptr = 10; 。使用取地址符 & 来获取变量的地址赋值给指针。例如 ptr = &a; 。
- 引用:在声明时直接使用变量名作为引用的名称,无需额外的操作符。例如 int& ref = a; 。
三、内存占用
- 指针:指针本身在内存中有自己的存储空间,其大小通常取决于系统架构(例如在 32 位系统中通常是 4 个字节,在 64 位系统中通常是 8 个字节)。
- 引用:引用不占用额外的内存空间,它只是已存在变量的别名。
四、空值表示
- 指针:可以指向空地址 nullptr ,表示不指向任何有效的内存位置。
- 引用:必须在初始化时绑定到一个有效的对象,不能为引用赋予空值。
五、可修改性
- 指针:可以重新指向不同的内存地址,即可以改变指针所指向的对象。
- 引用:一旦初始化绑定到一个变量,就不能再绑定到其他变量。
查看原帖
点赞 3
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
9461次浏览 122人参与
# 为了减少AI幻觉,你注入过哪些设定? #
3780次浏览 130人参与
# 程序员找工作至少要刷多少题? #
16413次浏览 231人参与
# 机械人避雷的岗位/公司 #
42951次浏览 289人参与
# 我现在比当时_,你想录用我吗 #
8145次浏览 107人参与
# 你认为工作的意义是什么 #
248887次浏览 1496人参与
# 一张图晒一下你的AI员工 #
4602次浏览 111人参与
# 论秋招对个人心气的改变 #
9584次浏览 149人参与
# AI Coding的使用心得 #
4213次浏览 98人参与
# 刚入职的你踩过哪些坑 #
6275次浏览 125人参与
# 关于春招/暑期实习,你想知道哪些信息? #
6885次浏览 116人参与
# 牛客AI体验站 #
6012次浏览 167人参与
# 晒晒你司的新年福利 #
7516次浏览 100人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1743次浏览 46人参与
# 程序员能干到多少岁? #
8023次浏览 113人参与
# 你认为小厂实习有用吗? #
117870次浏览 679人参与
# 总结:哪家公司面试体验感最差 #
92783次浏览 429人参与
# 应届生进小公司有什么影响吗 #
118132次浏览 1158人参与
# 找工作的破防时刻 #
253744次浏览 1963人参与
# 找工作时的取与舍 #
119721次浏览 867人参与
查看19道真题和解析