指针(*)与引用(&)的理解和思考

本文探讨了C语言中的指针与C++中引入的引用概念。指针存储数据的地址,而引用则是变量的别名,一旦初始化后就始终绑定到原始变量。通过引用,对b的修改直接影响a的值。文中通过示例代码解释了指针和引用的使用,并对引用的特性进行了深入思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针(*)与引用(&)的理解和思考

一直用C,突然看到 int &b=a; 有点发懵,决定把这个东西弄清楚

先说C语言吧

关于指针(*),就是数据的地址
(&)在C里面就是取地址,int *a = &b ;就是把b的地址给a,通过a可以访问到b地址上的数据

再来说开始的那个语句,

int a = 100;
int &b=a;

看到这个语句,第一反应是C语言里面好像没这么写的。
查了一下资料,果然,引用是C++对C的一种拓展。那么,该如何理解引用呢?

一般的教科书上都会写**“引用就是绑定,把b和a绑定了,b就是a,a就是b,对b修改也就是对a修改,b就是a的别名”**

以上段代码为例,b和a绑定了,b的数值就是100,b的地址跟a是一致
举个栗子,一看就明白:
在这里插入图片描述

这句话也不长,记下来也没问题。

但是最好还是往深处想想

int a = 1;
int *b = &a;
int &c = a; 

先看下这三个语句,把逐个来理解
第一个,a是一个 int类型的变量,a的数值为1
第二个,b是一个int*类型的变量(b是一个指针,这个指针指向一个int类的数
第三个,类似的,c首先是一个变量,c是什么类型呢?是int&的,怎么理解呢?同第二个,我们知道&的初始意思是取地址,也就是说,c是一种【取地址】的数据类型,取的是int类型的地址
也就说 c这个变量取了a的地址作为自己地址

这种理解只是辅助理解,未必跟C++的标准一致

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值