C++ 传参的方式 值传递,指针传递,引用传递

本文详细解析了C++中三种主要的传参方式:值传递、指针传递和引用传递,通过具体代码示例说明每种方式如何工作,以及它们在函数调用中的行为差异。

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

关于传参总是搞晕,这里总结下:

值传递:

void func(int n)

{

}
void main()
{
int  x = 1;
func(x);
return;
}

  这种就是值传递,在func函数里,对参数n进行赋值操作,main函数的x始终是1。

指针传递:

我理解的指针传递有两种场景:

1)修改指针指向的内容,举例:

class A
{
public:
A();
~A();
public:
int k;
}
void func(A* p) { P->K = 6; } void main() { A*p = new A; p->k = 5; func(p); return; }

  这种情况不会修改实参所指向的内容,就是调用完func函数,main函数的p指针的k值变成了6。因为这是修改指针指向的内容的值。再看下面的例子:

void func(int * n)
{
	int l = 9;
	n = &l;
}
void main()
{
	int k = 1;
	int* n = &k;
	func(n);
}

  这个情况,执行完func函数,n的指向还是1,不会变。

 

引用传递:

引用就是给当前地址起个别名,引用永远修改的都是,传入参数的值。

void func(int&n)
{
n =100;
}
void main()
{
int  k 120;
func(k);
}

  这个情况执行完,func函数,K的值就变成了100.

 

转载于:https://www.cnblogs.com/132818Creator/p/11277036.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值