C++:值传递、指针传递和引用传递

C++:值传递、指针传递和引用传递

传递方式函数定义函数调用函数内对a修改的影响
值传递fun(int a)fun(a)外部a不变
指针传递fun(int *a)fun(&a)外部a同步更改
引用传递fun(int &a)fun(a)外部a同步更改
#include <string>
#include <iostream>

using namespace std;

/// <summary>
/// 值传递
/// </summary>
/// <param name="a"></param>
void func271(int a)
{
	a = 10;
	cout <<"值传递:"<<a << endl;
	cout << "值传递地址:" << &a << endl;
}

/// <summary>
/// 指针传递
/// </summary>
/// <param name="a"></param>
void func272(int* a)
{
	*a = 100;
	cout << "指针传递:" << *a << endl;
	cout << "指针传递地址:" << a << endl;
}

/// <summary>
/// 引用传递
/// </summary>
/// <param name="a"></param>
void func273(int &a)
{
	a = 1000;
	cout << "引用传递:" << a << endl;
	cout << "引用传递地址:" << &a << endl;
}


int main(int argc, char* argv[])
{
	int a = 1;
	cout << "原始值:" << a << endl;
	cout << "原始值地址:" << &a << endl;
	func271(a);
	cout << "值传递a:" << a << endl;
	
	func272(&a);
	cout << "指针传递a:" << a << endl;

	func273(a);
	cout << "引用传递a:" << a << endl;

	return 0;
}
//原始值:1
//原始值地址:010FFE64
//值传递:10
//值传递地址:010FFD90
//值传递a:1
//指针传递:100
//指针传递地址:010FFE64
//指针传递a:100
//引用传递:1000
//引用传递地址:010FFE64
//引用传递a:1000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值