我用3个参数声明了一个C++函数声明,其中两个参数有这样的默认值。voidfunc(intconstn,boolconstflag=true,int*array=NULL){/*printcontentsofarray*/}当我错误地调用函数时,省略了第二个参数但包括了第三个参数,就像这样intarray[5]={1,2,3,4,5};func(5,array);gcc和intel编译器(Ubuntu14.04LTS上的默认编译器)都没有提示指定了最后一个参数而没有指定倒数第二个参数。代码运行但为数组发送了NULL(我预计代码会失败)。我的问题是为什么编译器没有提示它找不到匹配的函数,