为了账号安全,请及时绑定邮箱和手机立即绑定

对例子代码的一个疑惑

int fn1(int x)

{

    int y,z;

    z=2;y=x+z;

    ……

这里fn1括号里的能把int y,int z加上去吗?加上去了下面y和z是不是就不用再定义了

正在回答

3 回答

括号里的形参是一个函数的入口, c语言里所有的形参都要对应的实参传入.如定义int fn1(int x, int y,int z){......}

但是在调用的时候: fn1(2);  这样写是不对的.这样只有x得到赋值, 编译器就会报错.如果:fn1(1,2,3);这样写就一点问题都没有, 这样子就无需在函数体内再定义y,z. 因为形参表定义的变量也是属于这个函数的局部变量.如果再在函数体中定义: int y,z; 编译器就会报错: redefine....(重复定义)

1 回复 有任何疑惑可以回复我~

有兴趣可以看下形参缺省, 在C++里形参是可以缺省的,即:声明函数 int fn1(int x, int y=2, int z=3);

调用时; fn1(1); 赋值结果: x =1 ,y =2, z =3;

0 回复 有任何疑惑可以回复我~
#1

王之藐视

看了你的解释懂了很多,谢谢分享
2017-08-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       924443    人
  • 解答问题       20757    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

对例子代码的一个疑惑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信