C++ 形参里 *& 和 * 的区别

本文深入探讨了C语言中指针和引用的区别,通过具体示例解释了*&是如何修改指针地址,而*仅能修改指针所指向内存区域的值。演示了通过函数如何正确地修改指针指向的内容。

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

形参里,*&是指针的引用,它可以修改指针里存的地址,也可以按照C的方法修改指针指向的内存区域里的值,而*是一级指针,它只能做到修改指向的内存区域的值,改不了这个指针里存的地址。
一段简单的代码就能理解了

#include <stdio.h>
void a111(int *c) {
    c++;
}
void a222(int *&a) {
    a++;
}
int main() {
	int b[]={333,666};
	int *s = b;
    printf("*s = %d\n", *s);
    a111(s);
    printf("*s = %d\n", *s);
    a222(s);
    printf("*s = %d\n", *s);
    return 0;
}

在这里插入图片描述
a111里自己++,只是加的s的副本,跳出函数后就没有了,而a222里是加的s本身,相当于给s起了个别名叫a。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ethan Wilson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值