c 形参 可变 入门

#include < stdio.h >
#include
< stdarg.h > /// /处理可变参数列表,需要包含这个头文件

int max( int num, int b, ...) /// num表示参数的个数
{
va_list ap;
int m,i,temp;

va_start(ap,b);
/// /处理可变参数列表,初始化
m = b;
for (i = 1 ;i < num;i ++ )
{
temp
= va_arg(ap, int ); /// /处理可变参数列表,每次取一个参数
if (m < temp)m = temp;
}
va_end(ap);
/// /处理可变参数列表,结束
return m;
}

int main( void )
{
printf(
" max(1,1)=%d\n " , max( 1 , 1 ));
printf(
" max(2,1,2)=%d\n " , max( 2 , 1 , 2 ));
printf(
" max(3,1,2,3)=%d\n " , max( 3 , 1 , 2 , 3 ));
return 0 ;
}

2 原文地址:http://www.cnblogs.com/minstrelboy/archive/2011/05/12/2044502.html

#include <stdio.h>
#include <stdarg.h>
 
int valargfun(int argn,...)
{
  va_list ap;
  va_start(ap,argn);
  for (int i = 0; i<argn; ++i)
  {
    printf ("%d args is %d\n",i,va_arg(ap,int));
  }
  va_end(ap);
}
 
int main()
{
  valargfun(5,1,2,3,6,7);
}
  
输出为:

0 args is 1
1 args is 2
2 args is 3
3 args is 6
4 args is 7

你可能感兴趣的:(入门)