C++缺省参数的概念是什么
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了C++缺省参数的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++缺省参数的概念是什么文章都会有所收获,下面我们一起来看看吧。一、缺省参数概
千家信息网最后更新 2026年11月03日C++缺省参数的概念是什么
这篇文章主要介绍了C++缺省参数的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++缺省参数的概念是什么文章都会有所收获,下面我们一起来看看吧。
一、缺省参数概念
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参
#includeusing namespace std;void TestFunc(int a = 0)//参数缺省值{ cout << a << endl;}int main(){ TestFunc();//没有指定实参,使用缺省值 TestFunc(10);//指定实参,使用实参 return 0;}
有什么用
比如在 C 语言中有个很苦恼的问题是写栈时,不知道要开多大的空间,之前我们是如果栈为空就先开 4 块空间,之后再以 2 倍走,如果我们明确知道要很大的空间,那么这样就只能一点一点的接近这块空间,就太 low 了。但如果我们使用缺省,明确知道不需要太大时就使用默认的空间大小,明确知道要很大时再传参
#includeusing namespace std;namespace WD{ struct Stack { int* a; int size; int capacity; };}using namespace WD;void StackInit(struct Stack* ps){ ps->a = NULL; ps->capacity = 0; ps->size = 0;}void StackPush(struct Stack* ps, int x){ if(ps->size == ps->capacity) { //ps->capacity *= 2;//err ps->capacity == 0 ? 4 : ps->capacity * 2;//这里就必须写一个三目 }}void StackInitCpp1(struct Stack* ps, int defaultCP){ ps->a = (int*)malloc(sizeof(int) * defaultCP); ps->capacity = 0; ps->size = defaultCP;}void StackInitCpp2(struct Stack* ps, int defaultCP = 4)//ok{ ps->a = (int*)malloc(sizeof(int) * defaultCP); ps->capacity = 0; ps->size = defaultCP;}int main(){ //假设明确知道这里至少需要100个数据到st1 struct Stack st1; StackInitCpp1(&st1, 100); //假设不知道st2里需要多少个数据 ---- 希望开小点 struct Stack st2; StackInitCpp2(&st1);//缺省 return 0;}
二、缺省参数分类
全缺省参数
void TestFunc(int a = 10, int b = 20, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; cout << endl;}int main(){ //非常灵活, TestFunc(); TestFunc(1); TestFunc(1, 2); TestFunc(1, 2, 3); //TestFunc(1, , 3);//err,注意它没办法实现b不传,只传a和b,也就是说编译器只能按照顺序传 return 0;}注意:
全缺省参数只支持顺序传参
半缺省参数
//void TestFunc(int a, int b = 10, /*int f, - err*/ int c = 20);//err,void TestFunc(int a, int b = 10, /*int f, int x = y, -> err*/ int c = 20){cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;cout << endl;}int main(){//TestFunc();//err,至少得传一个,这是根据形参有几个非半缺省参数确定的TestFunc(1);TestFunc(1, 2);TestFunc(1, 2, 3);return 0;}//void TestFunc(int a, int b = 10, /*int f, - err*/ int c = 20);//err,void TestFunc(int a, int b = 10, /*int f, int x = y, -> err*/ int c = 20){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; cout << endl;}int main(){ //TestFunc();//err,至少得传一个,这是根据形参有几个非半缺省参数确定的 TestFunc(1); TestFunc(1, 2); TestFunc(1, 2, 3); return 0;}//a.hvoid TestFunc(int a = 10);//a.cppvoid TestFunc(int a = 20){}注意:
半缺省参数必须从右往左依次来给出,且不能间隔着给
缺省参数不能在函数声明和定义中同时出现
缺省值必须是常量或者全局变量
C 语言不支持缺省
关于"C++缺省参数的概念是什么"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"C++缺省参数的概念是什么"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
参数
概念
空间
C++
函数
知识
很大
内容
数据
篇文章
语言
顺序
支持
苦恼
也就是
也就是说
价值
全局
办法
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
唐信互联网科技
互联网科技视频
南京欣网互联网科技
科技赋能互联网健康
阿里巴巴算科技企业还是互联网
互联网科技教育视频
湖南诚度互联网科技有限公司
互联网科技大奖都有哪些公司
燊美集互联网科技有限公司
互联网公司黑科技创始人
工业互联网展湾科技股份有限公司
上海京穆互联网科技有限公司
上海创道互联网络科技有限公司
2021世界互联网领先科技成果发布
扫呗互联网科技有限公司
福仕德教育科技互联网
保山浩联互联网科技有限公司
河南商务圈互联网科技有限公司
互联网科技自媒体灵感
互联网科技快速发展优美句子
小米移动互联网科技园
互联网最新的科技有限公司
与互联网科技公司
凡科互联网科技
银优互联网科技有限公司
广州互联网络科技有限公司
宁夏科技产业互联网案例
黑科技 体验场景 互联网大会
互联网科技创新创业项目
恒生科技互联网指数十大成分股