C++返回值的问题
int func(int n, int &sum)
{
return (n && func(n - 1, sum), sum += n);
}
像这样的返回值是什么意思呢?还有这个&&与操作这么单独写有什么含义?还有这个函数sum这个参数传的是引用,可是我试了下,int sum=0;cout<<func(10,sum)<<endl<<sum;最后这个输出的sum为什么还是0?真心求教
[解决办法]
int func(int n, int &sum)
{
return (n && func(n - 1, sum), sum += n);
}
逗号运算符先计算第一个表达式的值(这里第一个表达式是递归调用,直到n为0为止);
再计算第二个表达式的值,累加参数n;
逗号表达式的值对最后一个表达式的值,所以这里返回累加的值;
int i = 0;
cout << func(10, i) << endl;
[解决办法]