默认参数有什么作用?

纯刚学,有个疑问在百度差不明白。
用默认参数
fun(int a,int b=1)
普通的
fun(int a)
{int b=1;}
这两个有什么不同?如果没有,那默认参数的用途是什么。既然存在,那肯定有他的道理。

img


[https://wk.baidu.com/view/f36b5c28757f5acfa1c7aa00b52acfc789eb9fb5?_wkts_=1683691751534](url
另外,这是对的吗?

fun(int a,int b=1)
普通的
fun(int a)
{int b=1;}
后者,调用者丧失了给b另一个值的可能性了,前者可以写fun(a, 123);让b等于别的值。
默认参数和函数重载没啥关系,那么说肯定错的。

既然叫默认参数,就是你不赋值的时候它会有个默认值
比如你调用fun(0),只传一个值,那么此时a=0,b=1
如果你调用fun(0,2),那么a=0,b=2
你按后面的写法就没法给b传值了呀,它固定只能等于1了
默认参数和重载没有一毛钱关系