设为首页 加入收藏

TOP

C语言中的可变参数列表
2017-01-05 08:14:50 来源: 作者: 【 】 浏览:39
Tags:言中 可变 数列

C语言中的可变参数列表:从语言中有时候会遇到一些参数个数是可变的函数,像scanf,printf等,这些函数内部的参数列表都是可变的。

如函数原型:scanf(const char * format,…);
解释:除了format以外,后面跟着的参数 个数,类型是可变的,用…作为一种占位符号。
“…”称为可变参数列表,可以用来接受个数和类型不确定的参数

使用:
可变参数列表在C语言中使用这样的三个宏(va_start,va_arg,va_end)和一个类型(va_list)来进行实现的,他们都是定义在stdarg.h头文件中的

宏:
1:va_start原型:
void va_start(va_list ap,paramN);
参数:va_list:存储参数的类型信息
ap:可变参数列表地址
paramN:确定的参数
2:va_arg原型:
void va_arg(va_list ap,type);
返回下一个参数的值
3:va_end原型:
void va_end(va_list ap,type);
关闭初始化的列表

使用方式:
1. 使用va_list初始化可变参数列表
2. 使用va_arg逐个获取参数值
3. 用va_end将可变参数列表清空

示例代码

#include
  
   
#include
   
     float average_list(int value_num,...); int main(int argc,char * argv[]){ printf("average_1:%.2f\n",average_list(8,1,3,5,7,9,12,15,17)); return 0; } float average_list(int value_num,...){ va_list list; float sum = 0.0f; va_start(list,value_num); int i ; for(i = 0;i
    
     

输出的结果为: average_1:8.62

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c语言链表,头插法和尾插法 下一篇C语言的函数指针数组

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目