c++/c中函数默认参数的详细解析

本文详细介绍了C++中默认参数的使用方法与注意事项,包括如何在函数声明或定义时设置默认参数,以及调用时如何利用这些默认参数。此外,还讲解了默认参数的正确顺序及其重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用方法:
(1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数。
(2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替。

注意事项:
(1)一般在声明函数是设置默认参数。

如果在函数声明和定义函数时都设置了默认参数,则以函数声明的默认参数为准。

以 c++ 为例

#include<iostream>
using namespace std;

double add(double x = 64.2, double y = -2.4)//在定义函数时设置默认参数
{
  return a+b;
}

 int main(){ double add(int x = 93, int y = -23.23);//在函数声明时设置默认参数
 cout<<add()<<endl; //使用默认参数 
 return 0;
}

运行结果:



(2)默认参数的定义顺序是自右向左。即如果设置了一个缺省值,其右边的参数也应该设定一个缺省值。即:

int add(int a, int b =1, int c = 3);



这样做是正确的。

而:

int add(int a=1,int b,int c);



这样做是错误的。

这样做是因为实参传给系统之后,系统会自左向右与形参进行匹配。如果函数时add(1,2),那么a=1,b=2,c等于多少呢?我们只有把参数全部传递过去之后,系统才能获得c的值,但这样做的话,为什么还要设置函数的默认参数呢?所以编译系统不允许程序员这么做,因为这么做是毫无意义的。(3)默认参数的调用顺序是自左向右。我们在使用函数的时候,实参必须是由左自右书写的。

/*正确的用法*/
add(1,2,3);//传递三个参数的值
add(1,2);//传递两个参数的值
add(1);//传递一个参数的值
add();//不传递参数的值

/*错误的用法*/
add(,2,3);//不能省略掉左边的参数的值,应该右左向右传值



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值