_C语言_中函数间的数据传递
第 24 卷 第 3期 河 北 建 筑 工 程 学 院 学 报 Vo l. 24 No. 3
2006 年 9 月 JOURNAL OF H EB E I IN STITU TE OF ARCH ITECTURAL EN GIN EER IN G Sep tember 2006
《C语言 》中函数间的数据传递
任艳梅
张家口职业技术学院
摘 要 从函数的分类入手 ,分析了函数间的数据传递过程. 明确阐述了地址量作函数参数
时 ,仍然可以理解成一个单向的值传递的方式. 使得数组名作函数参数和普通变量 、指针变量
作函数参数可以统一起来理解 、掌握.
关键词 实际参数 ;形式参数 ;值传递
中图号 TP3
一个 C程序可由一个主函数和若干个函数构成. 由主函数调用其它函数 ,其它函数也可以互相调
用. 通常 ,调用其它函数的函数 ,我们叫它主调函数 ;被其它函数调用的函数 ,我们称它为被调函数. 在主
调函数和被调函数之间通常都会有数据的传递. 我们将丛函数的分类入手 ,来分析函数间的数据传递.
从函数的形式看 ,函数分两类 :
1 无参函数.
例 : p rin tm e ssage ( )
( )
{p rin tf “How do you do ! \ n ”; }
m ain ( )
{ p rin tm e ssage ( ) ; }
在调用无参函数时 ,主调函数并不将数据传递给被调函数 ,调用函数一般是为了执行一定的操作 ,
无参函数也可以带回函数值 ,一般情况下 ,我们并不希望它带回什么值 ,只要完成指定的操作即可. 但实
际上 ,函数并不是不带回值 ,而带回的是一个不确定的值. 在上例中如果要将函数 p rin tm e ssage ( ) 的值
赋给某个变量也是合法的 ,但不一定有实际意义 ,为了明确表示被调函数不带回值 ,可以用 “vo id " “定义
“无类型 “,这样 ,系统将保证不使函数带回任何值 ,即禁止在主调函数中使用被调函数的返回值.
2 有参函数
在调用函数时 ,在主调函数和被调函数之间有数据传递. 也就是说 ,主调函数可以将数据传递给被
调函数使用 ,被调函数中的数据也可以带回来供主调函数使用. 数据从主调函数传递到被调函数有两种
(
方法 :一种是通过函数的参数来传递. 在定义函数时函数名后面括弧中的变量名称为 “形式参数 ”简称
) ( )
“形参 ”,在主调函数中调用一个函数时 ,函数名后括弧中的参数称为 “实际参数 ”简称 “实参 ”. 二是
通过全局变量. 在全局变量的有效范围内所有函数都能引用全局变量的值 ,相当于各个函数间有直接的
传递通道. 而数据从被调函数传回到主调函数 ,通常是用 retu rn语句完成的 ,也有通过全局变量完成的 ,
还有其它方法. 下面我将根据传递的参数值的性质来分析数据在函数之间的传递情况. 我们知道 ,在调
用函数时 ,实际参数的值会传递给对应的形参 ,这个传递的过程实际就是一个赋值的过程 , 即将实际参
数的值赋给对应的形参. 也可以说是值传递. 而参数又可以分为两种情况 :
( )
1 普通变量作函数参数. 例 1:
m ax ( in t x, in t y)
{ in t z;
z = x > y? x: y;
收稿 日期 : 2006 - 04 - 12
作者简介 :女 , 1968年生 ,讲师 ,张家口市 , 075000
© 1994-2010 China Academic Journal Electronic Publis