C语言中函数形参与实参的结合方式.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中函数形参与实参的结合方式,c语言形参和实参,c语言中形参与实参,c语言形参实参,c语言中实参和形参,c语言中的实参和形参,c语言函数形参,函数的形参和实参,函数形参和实参,函数形参实参

《乌合木齐成人教育学院学报》(综合版) 2002 年第 2 期 C 语 言中函数形参与实参 的结合方 式 赵 一平 (乌鲁木齐成人教育学院 乌每木齐 830002) 摘 要 本人多次讲授(C 语言程序设计》的课程,发现学员对函数的形参与实参间如何交换数据往往搞不清楚,究其 原因与教材 中有关形参与实参结合方式的分类方法不无关系。在本文中通过对C 语言中形参与实参结合方式的分析. 给 出了 一种新 的分类方法 。 关键词 形参 实参 参数 传值调用 传地址调用 传名调用 指针 丁F乙D C 语言程序是 由函数构成的,函数间需要交换数据 ,函数间交换数据的通道主要有三个: 一是函数 的返 回值 ,它一次能返 回一个值 ,且是单向的( 只能输 出) ,该函数与其他函数通过函数调用可以引用这个返 回值; 二是全程变量,它是一个双向的通道 ,函数可以引用它,也可以改变它,从而达到双向传递 的 目的,但 由于全 程变量在整个程序 中都可见 ,这对程序的维护与调试都非常不利 ,在结构化程序设计 中它是被 限制使用 的; 三是函数 的参数 ,它既可以是单 向的输人通道 ,又可以是双向的输人与输 出通道 ,它是函数间交换数据的最 主要的方式。所以C 语言中函数如何通过参数交换数据即形参与实参的结合方式是教学的一个重点内容, 同时由于形参与实参的结合方式的复杂性 ,它也是教学的一个难点。 C 语言函数形参与实参的结合方式从总的方面来看和其他高级语言无太大的区别. 无非是 “传值调用 (赋值调用) ”方式与 “传地址调用( 也称传名调用) ”方式两种 。 “传值调用”(赋值调用) 方式 : 函数在被调用时 系统为函数的参数分配存储单元 ,并把实参的值赋给它 ,形参与实参(若实参是变量) 是两个不同的变量 ,任 何对形参的修改都与实参无关; “传地址调用”( 也称传名调用) 方式 :在函数被调用时系统不给形参分配存储 单元 ,形参与实参共用一个存储单元 ,只是在函数 内部与外部用不 同的名称引用 ,当然对形参 的任何修改其 实就是对实参的修改。 从上面的概念来看 ,好象是很清楚 ,传“值调用 ”一定是单 向的输人通道 ,对形参的修改不会影响到外部 , 而 “传地址调用 ”是一种双向传输通道 。一般高级语言确是如此 ,如 Pascal 语言:值参对应 “传值调用”; 变参 对应 传“地址调用”。下面分析一下C 语言巾形参与实参的结合方式 : 一、当数组作形参时,与之结合的实参一定是一个地址常量或是一个数组名(其实数组名也是地址常量) 或是一个指针变量 ,虽然这与 Pascal 变参只能与变量相结合是有 区别的,但它确实是 “传地址调用 ”,系统并 未为形参数组分配存储单元,形参与实参共用存储单元,且因形参数组名是常量是不能被修改的,能修改的 只有形参数组单元的值 ,其实就是实参的对应单元的值 。 二、一般变量( 指非数组或指针) 作形参时,与之结合的实参可以是与之匹配的变量或常量,系统为形参 分配新的存储单元用于存放实参的值,任何对形参的修改都与实参无关,这是 “传值调用”。 三、指针变量作形参时,与之结合的实参可以是与之匹配的指针变量或地址常量 ,系统为形参分配新 的 存储单元用于存放实参的值,这当然是 “传值调用”,但它传递的却是 “地址”值,我们来看几乎所有的C 语言 教材上都会举 的一个例 : 1. void swapl (in t - p l ,int ce p2 ) { int - p ; P = P l ; P 1= p 2 ; P2 0 P ; 2. void sw ap2 (int * p l , int ce p 2) . 8 5 .

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档