c语言可变形参

c语言中的形参分为两种,可变形参和固定形参。当我们查找函数的用法时有的函数里面的形参列表有  ...  号,不懂的人把它当做是省略号,但其实那代表可变形参,例如printf函数:int printf(const char *format, ...);

使用可变形参分为4个步骤。首先我们得加上头文件:include<stdarg.h>

1 、定义一个va_list的类型变量(用于存储堆栈的首地址)
    va_list ap;
2、调用宏: va_star(ap,format)  将堆栈的首地址存入到a中,format是形参列表最后一个已知类型形参(***这里注意,形参列表开头一定是已知形参)
3、va_arg(ap,type)宏,将每一个数据取出
    ap是列表变量名
    type是要取出的类型,注意char会转变成int类型,float会转变成double,因为有精度要求;
4、va_end释放

fun(int num,...)
{
        va_list ap;
        va_start(ap,num);
        while(num>0)
        {
               printf("%d\n",va_arg(ap,int));
                num--;
        }
        va_end(ap);
}
void main()
{
    fun(5,1,2,3,4,5);
}

这里的num代表第一个参数值,用它表示可变参数的个数。printf函数的功能就是用可变参数实现的,它的第一个参数是字符串,后面的参数是根据前面字符串的需求取出的
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值