下面代码 result 结果为什么是220 ?
#include <iostream>
using namespace std;
int sum(int a, int b=20)
{
int result;
result = a + b;
return (result);
}
int main ()
{
// 局部变量声明
int a = 100;
int b = 200;
int result;
// 调用函数
result = sum(b);
cout << "Total value is :" << result << endl;
return 0;
}
sum函数只传入了第一个参数
你sum函数配置了默认参数
所以有两种情况
当只传入一个变量时,sum(b)等于sum(b,20)
传入两个变量时,sum(a,b)就是sum(a,b)
sum 里面a被你函数赋值为200 b在函数上已经赋值为20 a+b自然等于220
简单说,你调用函数,是把b的值传给函数的参数的a