接收数量不定的函数实参

来源:互联网 发布:淘宝已经过了申请退款 编辑:程序博客网 时间:2024/05/03 13:08

#include <iostream>

#include <cstdarg>

 

using std::cout;

using std::endl;

 

 

int sum(int count,...){//第一个为计数参数

if(count<=0) return 0;

//处理可变的参数列表

va_list arg_ptr;//声明一个va_list类型的指针

va_start(arg_ptr,count);//va_start宏  用来初始化arg_ptr   使其指向列表中的第一个实参

 

int sum=0;

for(int i=0;i<count;i++){

sum+=va_arg(arg_ptr,int);   //va_arg返回arg_ptr指向的位置的实参值  并使arg_ptr递增 已指向下一个实参值

//第二个实参是第一个是实参的类型

}

va_end(arg_ptr);//va_end将va_list类型的指针复位成空值

return sum;

}

 

 

void main(int argc,char* argv[]){

cout<<sum(3,2,4,5);

cout<<endl<<sum(5,2,4,5,1,3)<<endl;

}

原创粉丝点击