C++函数的参数传递(值传递和引用传递)

<1>值传递 :形参获得值之后与实参脱离关系

<2>引用

首先,引用的定义和使用如下:

#include<iostream>
using namespace std;
int main()
{
	int a=56;
	int &ai=a;
	cout<<"a="<<a<<" ai="<<ai<<endl;
	a=96;
	cout<<"a="<<a<<" ai="<<ai<<endl;
	ai=15;
	cout<<"a="<<a<<" ai="<<ai<<endl; 
	return 0;
}

代码的运行结果是:a=56 ai=56

            a=96 ai=96

            a=51 ai=51

当a消失之后,他的引用ai,也就没有意义了,只是指向原先a的地址,但是存在的是垃圾值

#include<iostream>
using namespace std;
int main()
{
	int *p;
	p=new int(6);
	int &rpa=*p;
	*p=7;
	cout<<rpa<<" "<<*p<<endl;
	rpa=4;
	cout<<"rpa_addr"<<&rpa<<endl;
	cout<<rpa<<" "<<*p<<endl;
	delete p;
	cout<<rpa<<endl;
	cout<<"rpa_addr"<<&rpa<<endl;
	return 0;
}


ai一旦作为了a的引用那么其只能作为a的引用,不可再作为其他变量的引用, 当a的值变化时,ai也要随之变化

当把引用作为形参时,当调用函数时候,引用类型的形参就通过形实结合,成为了实参的别名,当函数内的语句作用于形参是也就相当于作用于实参。

void swap(int &a,int &b){}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值