c语言中如何判断实参变量的个数?比如下面一个函数有几个实参?为什么?不胜感激
问题描述:
c语言中如何判断实参变量的个数?比如下面一个函数有几个实参?为什么?不胜感激
fun(x+y,(e1,e2),fun(xy,d,(a,b)));
fun(xy,d,(a,b))里面xy和d不算实参么?这点不能理解,逗号表达式这个我知道用法.
答
用逗号分辨参数个数,但是小括号里的逗号不算,比如你这个函数,其中的参数有
x+y 、 e1,e2 、 fun(xy,d,(a,b)) 这三个参数.
其中(e1,e2)是个匿名函数当参数,fun()是个函数参数,其中又有 xy、d、(a,b)那为什么不是6个实参呢?是不是实参个数要与形参个数相等马上要考二级了 以前学的都搞忘记了现在自己看有很多题不知道为什么因为fun()函数里面的 fun()虽然有三个参数,xy、d、(a,b) , 但都当做一个参数看,这个参数就是fun()这个整体。比如这个例子fun(x,y,f(a,b,c,d))fun()一共有多少的参数,3个, x、y、f()虽然a b c d都是f()的参数, 但fun()在调用的时候只看f()的返回值, 并不管f()里面有多少个参数, 所以f()只算一个参数谢谢啦明白了也谢谢大家了