函数参数求值顺序:
当一个函数带有多个参数时,C++语言没有规定在函数调用时参数的求值顺序。编译器根据代码进行优化的需要规定对实参的求值顺序,可能是从左至右,也可能是从右至左。
如果实参表达式中带有副作用的算法,就有可能产生二义性。
#include<iostream>
int add_int(int x,int y)
{
return x + y;
}
void main()
{
int x(4) , y(6);
int z = add_int(++x,y+x);
cout<<z<<endl;
}
该程序中,先算++x 还是x+y 就会产生不同的结果。
设置函数参数的默认值
在C++中,允许在函数说明或定义时给出一个或多个参数的默认值。 但是,要求在一个指定了默认值的参数的右边,不能出现没有默认值的参数。
通常,当一个函数有定义又有说明时,参数的默认值要在说明时设置。