c语言中,函数形参和实参必须相同么?

如题所述

  可以相同但也可以不相同

  在程序执行的过程中,实参的作用域是主函数,只要程序没有停止,实参一直有效;形参是定义函数是引入的参数,系统只在该函数被调用时分配临时内存,当自定义函数执行完后,用于临时储存形参的空间将被释放。所以即使形参和实参的类型,名字完全一样,系统也能够把它们区分开。即可以完全一样。

  函数的形参和实参具有以下特点:


  1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。
函数调用结束返回主调函数后则不能再使用该形参变量。


  2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。
因此应预先用赋值,输入等办法使实参获得确定值。


  3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。


      4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
    因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-27
不需要相同,两者只是传值的关系。
比如:int max(int a,int b){return a>b?a:b;}
调用用int x=1,y=2;int z=max(x,y);也可以本回答被网友采纳
第2个回答  2015-02-04
变量名不同,但是个数要相同的