顾名思义,可变参数函数就是参数数量可变的函数,即函数的参数数量是不确定的,比如方法getnumbertotal()我们即可以传递一个参数,也可以传递5个、6个参数

 1 #include <stdio.h>
 2 #include <stdarg.h>//实现可变参数需要的头文件
 3 
 4 int getnumbertotal(int args,...){//可变参数要放在普通参数(args)的后面;...表示有很多个参数
 5     va_list l;//用来保存传给函数的其他参数
 6     va_start(l,args);//表示可变参数的开始,即args参数之后的所有参数
 7     int i;
 8     int total=0;
 9     //逐一读取可变参数
10     for(i=0;i<args;i++){
11         total+=va_arg(l,int);
12     }
13     va_end(l);//销毁va_list
14     return total;
15 }
16 
17 int main(){
18     int result=getnumbertotal(3,11,15,9);
19     printf("total:%i\n",result);
20     result=getnumbertotal(2,11,9);
21     printf("total:%i\n",result);
22     result=getnumbertotal(5,11,9,5,13,7);
23     printf("total:%i\n",result);
24     return 0;
25 }

C语言学习020:可变参数函数

  使用可变参数必须注意的是: 必须包含一个普通参数

C语言学习020:可变参数函数

  我们可以给va_start()方法传递一个NULL,但是需要通过第一个参数知道可变参数的个数

C语言学习020:可变参数函数

  va_arg获取可变参数的时候必须是对应的类型,否则将会出现不可预知的错误

相关文章:

  • 2021-09-29
  • 2021-10-10
  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
猜你喜欢
  • 2021-07-11
  • 2022-12-23
  • 2022-02-17
  • 2022-02-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
相关资源
相似解决方案