![f27a7c877258eaf5476f47dcf124005f.png](https://i-blog.csdnimg.cn/blog_migrate/350973dd2a33d08c4fc544811525fbd2.jpeg)
![e06bacc9ece05afed4d190aba0f67dfe.png](https://i-blog.csdnimg.cn/blog_migrate/1214a84bcf24b4e68ac366a01d45bfbb.jpeg)
话说上哪里去扣6,你想过没?
什么是可变长参数
顾名思义可变长参数,就是函数参数可以自动增长,其实这个东西大家早就接触过了,C语言基本的输入输出函数就是可变长参数。
可变参数函数声明方式都是类似的。我们一起来偷看下“内裤”,发现标准库中是这样声明printf函数的。
![adee0f5f1592c6263ff5d9bd5a2b66ab.png](https://i-blog.csdnimg.cn/blog_migrate/5922f6be937a1d3c50edf51398fc2d28.jpeg)
让看不懂的东西见鬼去吧
最终你要学习就是这个:int printf(const char * format, ...);
![f619e166622e6d92283c712ec52a6a16.png](https://i-blog.csdnimg.cn/blog_migrate/fd8e3bf66f6984dd048fcd632d7dae47.jpeg)
要学的不仅仅是语法,更重要的是解决问题的能力
可变长参数实现基础
三宏一类型:三个宏(va_start、va_end、va_arg)和一个类型(va_list)使用前不要忘记使用#include
![52a8c1236eb11840db0e3806bef69809.png](https://i-blog.csdnimg.cn/blog_migrate/d49d250d3ba8580ce14a5cb80d05d979.jpeg)
了解一下足以
- void va_start ( va_list ap, v); 功能:初始可变参数列表; ap: 可变参数列表地址,v:确定的参数 .
- void va_end ( va_list ap ); 功能:关闭参数列表,即把ap置空。
- type va_arg ( va_list ap, t);功能:返回下一个参数的列表
案例学习
1.头文件
![808d20474a9ed26b02b15711fa219550.png](https://i-blog.csdnimg.cn/blog_migrate/3383bd0ea22681539b5c68a012374a43.jpeg)
2.可变参数函数设计
![ad99bf918b33f4c07df5e09578627f4a.png](https://i-blog.csdnimg.cn/blog_migrate/93157f2e638728937e918adc778feceb.jpeg)
3步就可以搞定了
3.主函数测试
![4c9602dcfbb3c9aed394bcffee88f857.png](https://i-blog.csdnimg.cn/blog_migrate/179fbd49d7a2b0ab81642abc389fda66.jpeg)
下次相遇你是否变得更优秀?
尾言
如果你基础比较差,如果你基础比较差,不妨关注
视频教程专栏教程《C语言51课视频教程合集片》