C语言-形象解释按值传递和按引用传递

Call by value 按值传递

代码:

#include<stdio.h>
void Fun(int par);
int main()
{
	int arg=1;
	printf("arg=%d\n",arg);//调用函数之前
	Fun(arg);
	printf("arg=%d\n",arg);//调用函数之后
	return 0;
}
void Fun(int par)
{
	printf("par=%d\n",par);
	par=2;
}

运行结果:

arg=1
par=1
arg=1

按值传递,用形象的比喻来说就是:我有了一套房子,我现在把这个房子给你(你是函数)让你随便布置,但我给的不是我自己的房子,而是再建了一座一模一样的房子给了你让你布置,所以无论你布置得多么天花乱坠,我的房子依然不变。

Call by reference 按引用传递

代码:

#include<stdio.h>
void Fun(int *par);
int main()
{
	int arg=1;
	printf("arg=%d\n",arg);//调用函数之前
	Fun(&arg);
	printf("arg=%d\n",arg);//调用函数之后
	return 0;
}
void Fun(int *par)
{
	printf("par=%d\n",*par);
	*par=2;
}

运行结果:

arg=1
par=1
arg=2

按引用传递就是:我直接把这个房子给了你,所以在你布置一番之后我拿到手的房子就不是之前的房子了,而是你所布置之后的房子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值