一个C语言疑问

来源:百度知道 编辑:UC知道 时间:2024/09/28 11:09:44
怎么理解“C 语言中实参变量和形参变量之间的数据传递是单向的值传递方式”
呵呵,四楼,我自学的

值传递方向 实参---->形参
形参只是复制实参的值,形参值参与计算发生改变时不会引起实参的变化
就像你复制一个文件副本,对副本操作不会改变原文件

C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传递给形参,而不能由形参传回来给实参。

在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元 仍保留并维持原值。

因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数的实参的值。

另外,ANSI新标准允许使用另一种方法对形参类型作说明,即在列出“形参表列”时,同时说明形参类型。如:

int max(int x,int y)
{...}
相当于:
int max(x,y)
int x,y;
{...}
又如:
float fun(array,n)
int array[10],n;
可以写成
float fun(int array[10],int n)

这两用法等价,都可以使用。ANSI新标准所增加的对形参类型作说明的方法,与pascal语言所用的方法是类似的。

为了照顾多数人的习惯以及目前多数C程序的表示方法,本书程序仍采用传统的表示方法(即将形参类型单独作说明)。

上一页 || 下一页
--------------------------------------------------------------------------------
建议使用IE6.0以上浏览器 采用1024*768模式
Copyright@2005-2008 北京邮电大学世纪学院 版权所有
--------------------------------------------------------------------------------

实参是正品,形参是复制品,假冒伪略,所以存活时间短。

上课开