C++参数传递

C++参数传递

1、按值传递:将实参的值拷贝给形参,形参和实参是两个独立的对象,函数对形参进行操作,不影响实参的值。
指针形参,

void reset(int* p)
{
	*p = 0; //改变指针p所指对象的值
	p = 0; //只改变了p的局部拷贝,实参未被改变
}

调用reset函数后,实参所指的对象的值被改变为0,但是实参本身没有改变

2、按引用传递:和其他引用一样,引用形参也是它绑定的对象的别名;也就是说,引用形参是它对应的实参的别名。通过引用形参可以改变实参的值
传递的依旧是对象,而不是对象的地址。

void rReset(int & i) // i是传给rReset 函数对象的另一个名字
{
	i = 0; // 改变了i所引对象的值
}

调用此函数时,i绑定了传给函数的int对象,此时,改变i就是改变所引对象的值。

3、使用引用避免拷贝
尽量使用按引用传递,而减少使用按值传递
当函数不需要修改引用形参的值,最好将其声明为常量引用

bool isShorter(const string &s1, const string &s2)
{
	return s1.size() < s2.size();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值