c++详解:引用与指针异同

文章目录

  • 前言
    • 指针和引用是C++中两个重要的既念,它们都提供了对内存中对象的间接访问方式。尽管它们在某些方面有相似之处,但它们之间也存在看一些关键的区别本文将详细介绍指针和引用的异同
  • 一、引用
  • 二、地址
  • 总结


前言

指针和引用是C++中两个重要的既念,它们都提供了对内存中对象的间接访问方式。尽管它们在某些方面有相似之处,但它们之间也存在看一些关键的区别本文将详细介绍指针和引用的异同

提示:以下是本篇文章正文内容,下面案例可供参考

一、引用

引用是对于对象的取别名用&表示如:int&a=b;就是对于b的取别名当你动用a时b的值也会改变如:

在这里插入图片描述
我将这里的a赋予了数值5,这时b的值同时改变。

但是引用并不用开辟新空间如
在这里插入图片描述
这里可以看到a和b是相同的地址并没有像指针一样开辟新的空间

除此以外引用还可以用在函数上同样的它代入后可以改变它的值这时可以将它不太严谨的看成是地址但是记住它并不开辟空间(有很多大学教材中在讲c语言链表时就用了引用,但是C语言并不支持引用所以造成了按书上写一片报错)。所以这时可以不用加断言函数判断是否为空
在这里插入图片描述
但是注意
1.引用必须要取值,当你不给引用取值时会报错
在这里插入图片描述

2.引用可以多次引用但是引用一旦引用一个实体,再不能引用其他实体(不能更改)
在这里插入图片描述

二、地址

在C++中,地址是内存中用于存储数据的一个具体位置。它是用来标识和操作存储单元的一种机制。每个变量、数组元素、函数等在内存中都有一个唯一的地址。通过这个地址,程序可以访问和修改存储在内存中的数据。

地址通常以十六进制数的形式表示,但在C++代码中,我们通常不会直接处理这些十六进制数值,而是使用指针来间接引用和操作这些地址。指针是一种变量类型,它存储的是另一个变量的地址,而不是数据本身。

通常用取地址运算符(&)和解引用运算符(*)来表示但是这里的&并不是引用而是取地址是将这个地址提取出来再用解引用运算符访问数据例如
在这里插入图片描述
但是在这里a是占空间的例如在这里插入图片描述
在这里可以清晰的看到这里a与b是不同的两个空间

总结

引用与地址有许多的相同点但是也有很多的不同点例如
引用必须要取值,当你不给引用取值时会报错
引用可以多次引用但是引用一旦引用一个实体,再不能引用其他实体(不能更改)
引用并不用开辟新空间,而是原来的值

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值