函数的数据传递

来源:互联网 发布:手机乐器软件 编辑:程序博客网 时间:2024/05/17 01:11
函数的数据传递
        一、首先要搞清形式参数和实际参数的定义
        在定义函数时函数名后面括号中的变量名称为“形式参数”(简称“形参”)或“虚拟参数”。在主调用函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”(简称“实参”)。
        二、数据传递需要注意的问题
        实际参数可以是变量、常亮或表达式,但要求他们有确定的值,在调用时将实参的值赋值给形参。在调用“有参函数”时,主调用函数和被调用函数之间有数据传递关系。实参与形参的类型应相同或赋值兼容。实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传给实参。实参和形参在内存中占有不同的储存单元,实参无法得到形参的值。
       三、实参和形参间的数据传递
       系统在调用函数的过程中会把实参的值传递给被调用函数的形参,即形参即从实参得到一个值。得到的这个值只在函数调用期间有效,可以参加该函数中的运算,函数调用结束后,这个值就不能在继续使用了。
       在调用函数过程中发生的实参与形参间的数据传递,称为“虚实结合”。
       四、数组作为函数参数
       数组元素作函数实参,由繁到简,逐步细化。数组元素可以作函数实参,不能用作形参。因为形参是在函数被调用时临时分配存储单元的,不可能为一个数组元素单独分配存储单元。在用数组元素作为函数实参时,把实参的值传给形参,是“值传递”方式。数据传递的方向是从实参到形参,单向传递。不仅数组元素可以作为函数参数,数组名也可以作为函数参数,形参实参都可以。但要注意,用数组元素作实参时,向形参变量传递的是数组元素的值,而用数组名作函数实参时,仅仅向形参传递的是数组第一个元素的地址,而不是传递了整个数组的元素。
如语句float average(float array[10]);中,array[10]不占内存,只是一个地址而已;
       五、全程变量的传递方式
       在函数内定义的变量是局部变量,在函数之外定义的变量称为外部变量,外部变量是全局变量,也称全程变量。全局变量可以从程序定义开始,有效范围到源文件的结束,如果其中的某一函数改变了全程变量的值,那么之后的程序运行时使用的是改变之后的全程变量的值。

       六、返回值方式
返回值方式不是在形式参数和实际参数之间传递数据,通过函数调用后直接返回一个值到主调函数中。这种方式适用于从被调函数中将一个值传回主调函数。注意:要有return(表达式),表达式即为返回的函数值。另外,函数的开头要说明函数的类型,说明该函数的返回值的类型。




       
1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 没感情了有孩子怎么办 耳机有杂音滋滋怎么办 肚子吃坏了疼怎么办 大姨妈来了肚子痛怎么办 一到晚上就腹泻怎么办 减肥晚上太饿了怎么办 半夜饿了没吃的怎么办 晚上11点饿了怎么办 孕妇睡前肚子饿怎么办 减肥的时候晚上饿了怎么办 晚上睡前总是饿怎么办 狗狗牙齿松动了怎么办 狗狗牙齿掉了怎么办 眼镜金属架断了怎么办 纯钛眼镜架断了怎么办 万次火柴没油了怎么办 火疖子破了流脓怎么办 火疖子没有脓头怎么办 孕妇长火疖子疼怎么办 手上长小水泡痒怎么办 脚上起水泡很痒怎么办 手指上有水泡痒怎么办 手指起小水泡痒怎么办 手过敏起小水泡怎么办 头皮上白色像癣怎么办 脸上长了火疖子怎么办 脸上长硬硬的包怎么办 下身体痒痒得不得了怎么办 头皮干痒头屑多怎么办 头发掉的露头皮怎么办 头上老是有结痂怎么办 婴儿头上的黄痂怎么办 头皮屑多又痒怎么办小偏方 皮肤瘙痒起红疙瘩怎么办 头又油又痒怎么办 头上反复长脓包怎么办 额头上长了粉刺怎么办 身上长红疙瘩很痒怎么办 脸上的痘痘变硬怎么办 痘痘变成硬疙瘩怎么办 痘痘变硬了怎么办知乎