引用与指针的区别

1.引用访问的时候一般为直接访问,指针通过得到不同的地址来间接访问不同的变量,*是解析地址的作用

2.引用因为不分配自己的内存空间,因此可以通俗理解为给变量起别名,

当&出现在等号左边时,是引用一个变量,它的地址和值与引用的变量相同,进行赋值操作时,等同于改变引用的变量的地址和值

当&出现在等号右边时,是取一个变量的地址(指针变量的地址中存放的为指针的地址,而值中则存放的时指针所指向的地址,通过*来解析这个地址来指向变量)赋值给指针的值

注:*x指向的指针x中的值即变量的地址,因此若向修改指针的地址,则需要用到:**、*&

用内存中的存储形式更直观的理解


3.引用一经初始化,不能再引用新的变量,指针在生命周期内可以指向不同的变量

4.值传递,引用传递,指针传递

值传递:值传递中,因为形参无法影响到实参的改变,因此当实参初始化形参的时候(即形参给变量初始化,实参依旧可以给变量进行初始化)要分配新的空间,将实参拷贝到形参中去

引用传递:引用传递中,形参可以影响到实参的改变,形参若已经给变量初始化,则实参无法再给变量进行初始化操作

指针传递:实际上与值传递类似,通过地址的传递来解析新的地址从而指向新的变量,因此当实参初始化形参的时候与值传递相似,只是在分配空间不同而已,在32位系统中分配4个字节的空间,64位系统中分配8个字节的空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值