关注
在 C++中,指针和引用有以下区别:
一、本质
- 指针:指针是一个变量,它存储的是另一个变量的内存地址。例如 int* ptr; 这里 ptr 是一个指向 int 类型变量的指针。
- 引用:引用是一个变量的别名,它不是独立的变量,必须在初始化时绑定到一个已存在的变量上,且不能重新绑定到其他变量。例如 int& ref = a; 这里 ref 是变量 a 的引用。
二、语法
- 指针:使用星号 * 表示解引用操作,用于访问指针所指向的变量的值。例如 *ptr = 10; 。使用取地址符 & 来获取变量的地址赋值给指针。例如 ptr = &a; 。
- 引用:在声明时直接使用变量名作为引用的名称,无需额外的操作符。例如 int& ref = a; 。
三、内存占用
- 指针:指针本身在内存中有自己的存储空间,其大小通常取决于系统架构(例如在 32 位系统中通常是 4 个字节,在 64 位系统中通常是 8 个字节)。
- 引用:引用不占用额外的内存空间,它只是已存在变量的别名。
四、空值表示
- 指针:可以指向空地址 nullptr ,表示不指向任何有效的内存位置。
- 引用:必须在初始化时绑定到一个有效的对象,不能为引用赋予空值。
五、可修改性
- 指针:可以重新指向不同的内存地址,即可以改变指针所指向的对象。
- 引用:一旦初始化绑定到一个变量,就不能再绑定到其他变量。
查看原帖
点赞 3
相关推荐
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
3819次浏览 68人参与
# 找不到实习会影响秋招吗 #
1399680次浏览 13635人参与
# 实习没事做是福还是祸? #
4099次浏览 67人参与
# 重来一次,你会对开始求职的自己说 #
906次浏览 19人参与
# 2025年终总结 #
134034次浏览 2292人参与
# 考研人,我有话说 #
156567次浏览 1211人参与
# 哪些公司笔/面试难度大? #
7058次浏览 32人参与
# 实习简历求拷打 #
23883次浏览 249人参与
# 你觉得现在还能进互联网吗? #
29945次浏览 201人参与
# 携程工作体验 #
18940次浏览 66人参与
# 大厂VS公务员你怎么选 #
69128次浏览 638人参与
# 扒一扒那些奇葩实习经历 #
140155次浏览 1149人参与
# 找不到好工作选择GAP真的丢人吗 #
93677次浏览 1007人参与
# 那些我实习了才知道的事 #
253045次浏览 1784人参与
# 非技术投递记录 #
672879次浏览 6820人参与
# 机械求职避坑tips #
81063次浏览 531人参与
# 投格力的你,拿到offer了吗? #
154880次浏览 829人参与
# 第一份工作能做外包吗? #
94048次浏览 599人参与
# 作业帮求职进展汇总 #
85418次浏览 559人参与
# 秋招遇到的奇葩面试题 #
101246次浏览 416人参与
查看11道真题和解析