房天下 > 房天下问答 > 业主生活 > 其他
  • 形参和实参必须一对一吗?

    我看到老谭的那本c程序设计函数那张前几节都是形参和实参一对一的出现,可是我看到下面这个程序就茫然了:f(int a){auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);}main(){int a=2,i; for(i=0:i<3:i++) printf("%d",f(a));}我想知道为什么形参只是a?可是在f函数里变量b,c都用到了并且return返回的时候也用到了a+b+c,所以我觉得形参应该是a,b,c啊?函数返回值return中的表达式与形参表列是什么关系啊?哪位高手帮我解答一下啊?谢谢!

    提问者:vividuoduo

    发布于2010-12-09

共1个回答
  • fqdg 丨Lv 0
    因为程序员觉得这个函数只需要传入一个参数就可以进行运算,所以形参只有一个,变量b,c只是函数f里的内部变量,不需要 从外部输入。函数里用到的变量不是全部都需要从外部传入,有的只需要在函数内部处理就够了,那就可以减少使用者的输入量和计算量。在上面你的例子中,b和c都只是在函数内部定义和处理,并不需要外部程序的输入和操作。参数列表说到底还是程序员定义的,你可以想写多少个就写多少个,但是要在调用的时候实参都要跟你所定义的参数列表一一对应,不能多,也不能少。函数返回值return中的表达式与形参表列之间的关系是没有关系....return 只是返回一个数值而已,在你上面的例子则是返回a+b+c这个表达式的值,跟return 这个语句不存在必然的联系
    +1 2010-12-09 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。