函数调用时的数据传递

初学者,希望大神们多多指教可怜害羞吐舌头

一、值传递

首先应该知道两个概念,形式参数和实际参数。形式参数:在定义函数时函数名后面括号中的变量名称。实际参数:在主调函数中调用一个函数时,函数名后面括号中的参数。实际参数可以是常量、变量或表达式,但要求他们有确定的值。说明:实参与形参的类型应相同或赋值兼容。

值传递:实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传给实参。

例题:输入两个整数,要求输出其中值较大者。

#include<stdio.h>

int main()

{int max(int x,int y);  //对max函数的声明

int a,b,c;

printf("please enter two integer numbers:");   //提示输入数据

scanf("%d %d",&a,&b);    //输入两个整数

c=max(a,b);   //调用max函数,有两个实参a,b。大数赋给变量c

printf("max is %d\n",c);  //输出大数c

return 0;

}

int max(int x,int y)      //定义max函数,有两个参数。这里是实参

{int z;    //定义临时变量z

z=x>y?x:y;       //把x和y中大者赋给z

return(z);     //把z作为max函数的值带回main函数

}

二、址传递

用数组元素作实参时,向形参变量传递的是数组元素的值,而用数组名作函数参数时,向形参(数组名或指针变量)传递的是数组首元素的地址。

(1)用数组名作函数参数,应该在主调函数和被调用函数分别定义数组.

(2)实参数组与形参数组类型应一致,不一致,结果将出错。

(3)数组名代表数组首元素的地址。传递过程中,只是将实参数组的首元素的地址传给形参数组名。

(4)形参数组可以不指定大小,在定义数组时在数组名后面跟一个空的方括号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值