C语言学习笔记——可变参数列表

stdarg.h提供了可用于可变参数列表的宏,这是标准库的一部分,定义为va_list,主要包括以下三个部分:va_start, va_arg, va_end.

va_list是要读取的参数列表,va_start(var_arg, n_values);和va_end(var_arg);之间是主要要实现的流程。具体例子如下:

Writer: P.C.
Date: 2014.10.13 11:09
Description: 利用stdarg.h来实现参数列表的可变性
*/
#include "stdafx.h"
#include "stdio.h"
#include "stdarg.h"

void printargs(int arg1, ...)
{
  va_list ap;//定义参数列表
  int i;
  int sum=0;
  int count=0;
  va_start(ap, arg1); //启动参数列表的读取
  for (i = arg1; i != -1; i = va_arg(ap, int))//参数列表读取的过程,-1是人为设定的终止,可以替换成其他的,如>10,则读取到第一个大于10的数便终止
  { sum=sum+i;
  count++;}
  va_end(ap);//结束参数列表的读取
  printf("%d\n",sum/count);
}
 
int main(void)
{
   printargs(1,2,3,4,5,-1);//一定要设置好终止位,否则会出错
  
   return 0;
}
以前都是通过设定多种构造函数来实现不同参数个数的输入,利用这个头文件相对更便利一些,但也会参加对参数控制的麻烦和出错的可能性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值