首页 > 代码库 > 变长参数表
变长参数表
//变长参数表.cpp
#include<iostream>
#include<cstdarg>//标准头文件,提供宏va_start,va_arg和va_end,用于存取变长参数表
typedef int ElemType;
using namespace std;
ElemType MaxSeek(int num,...);
int main ()
{
cout<<"最大值为"<<MaxSeek(4,5,2,0,36)<<endl;
cout<<"最大值为"<<MaxSeek(5,2,2,10,85,1000)<<endl;
return 0;
}
ElemType MaxSeek(int num,...)
{ //函数功能: 返回num个数的最大值
va_list ap;//定义ap是变长参数表类型(c语言的数据类型)
int i;
ElemType max,n;
if(num<1)
return 0;
va_start(ap,num);//这样做,可以使ap后移,可以使它指向固定参数ap后面的实参
max = va_arg(ap,ElemType);//使p指向第一个可变实参,采用擂台算法
for(i = 1;i<num;i++)
{
n = va_arg(ap,ElemType);
if(max<n)
max=n;
}
va_end (ap);//与va_start匹配,结束对变长参数表的读取,ap不再指向任何参数表
return max;
}
变长参数表