C语言 函数调用时的数据传递

1.形式参数和实际参数
在调用有参函数时,主调函数和被调函数之间有数据传递的关系。在定义函数时函数名后面括号中的变量名称为“形式参数”(简称“形参”)。在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”(简称“实参”)。实际参数可以是常量、变量或表达式。
2.实参和形参间的数据传递
在调用函数过程中,系统会把实参的值传递给被调用函数的形参。或者说,形参从实参得到一个值。该值在函数调用期间有效,可以参加函数中的运算。
在调用函数的过程中发生的实参和形参之间的数据传递称为“虚实结合”。
例题:
输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
【思路】
用一个函数来实现,在定义函数时要确定:
(1)函数名。定名为Max。
(2)函数的类型。给定的两个数是整数,两者中的较大者也是整数,也就是说Max函数的值应该是整型。
(3)Max函数的参数个数和类型。Max函数应当有两个参数,以便从主函数接受两个整数,显然,参数的类型应该是整型。
在调用Max函数时,应当给出两个整数作为实参,传递给Max函数中的两个形参。
【代码实现】

int Max(int x, int y)
{
	int z;
	if (x > y)
	{
		z = x;
	}
	else
		z = y;
	return z;
}
int main()
{
	int a, b, c;
	printf("输入要比较的两个整数:\n");
	scanf("%d%d", &a, &b);
	c = Max(a, b);
	printf("Max=%d", c);
	return 0;
}

输出:
请添加图片描述
【改良代码】

int Max(int x, int y)
{
	return (x > y ? x : y);
}
int main()
{
	int Max(int x, int y);
	int a, b, c;
	printf("输入要比较的两个整数:\n");
	scanf("%d%d", &a, &b);
	c = Max(a, b);
	printf("Max=%d", c);
	return 0;
}

输出:请添加图片描述
【程序分析】
主函数中包含了一个函数调用Max(a,b)。Max后面括号内的a,b时实参。a和b是在main函数中定义的变量,x和y是函数Max的形式参数。通过函数调用,在两个函数之间发生数据传递,实参a和b的值传递给形参x和y,在Max函数中把x和y中的大者赋给变量z,z的值作为函数值返回main函数,赋给变量c。
说明:
(1)实参可以是常量、变量或表达式,例如:Max(3,a+b),但要求它们有确定的值。在调用时将实参的值赋给形参。
(2)实参与形参的类型应相同或赋值兼容。上例中,实参和形参的类型相同,都是int型,这是合法的、正确的。如果实参为int型而形参为float型,或者相反,则按不同类型数值的赋值规则进行转换。例如实参a为float型变量,其值为3.5,而形参x为int型,则在传递时先将实数3.5转换成整数3,然后传递到形参x。字符型与int型可以互相通用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值