奇怪的阿怪
2017-07-28 17:52
int fn1(int x)
{
int y,z;
z=2;y=x+z;
……
}
这里fn1括号里的能把int y,int z加上去吗?加上去了下面y和z是不是就不用再定义了
括号里的形参是一个函数的入口, c语言里所有的形参都要对应的实参传入.如定义int fn1(int x, int y,int z){......}
但是在调用的时候: fn1(2); 这样写是不对的.这样只有x得到赋值, 编译器就会报错.如果:fn1(1,2,3);这样写就一点问题都没有, 这样子就无需在函数体内再定义y,z. 因为形参表定义的变量也是属于这个函数的局部变量.如果再在函数体中定义: int y,z; 编译器就会报错: redefine....(重复定义)
有兴趣可以看下形参缺省, 在C++里形参是可以缺省的,即:声明函数 int fn1(int x, int y=2, int z=3);
调用时; fn1(1); 赋值结果: x =1 ,y =2, z =3;
C语言入门
926210 学习 · 20797 问题
相似问题