六、函数参数不确定

一、函数头

void fun(int a,...) //注意逗号,以及三个点
// 第一个参数一定要具体, 要指示未知参数的个数

 

// printf如何指示参数的个数?
printf("%d,%d,%d", 1 ,2 ,3 );
/*
1. 第一个参数是字符串,里边由多少个%d,这种转义字符,就有多少个参数。
2. 假设,我有5个%d, 3个数据, 那么依然输出5个, 后两个是未知数值或者叫系统默认数值
*/

二、函数体

#include<stdio.h>
#include<stdarg.h>

void fun(int a, ...)  // 第一个参数一定要具体, 要指示未知参数的个数
{
    va_list ap; // 定义一个参数数组 
    va_start(ap, a); // 将所有的参数装入数组中
    printf("%d\n",va_arg(ap, int)); 
    printf("%f\n",va_arg(ap, double)); 
    printf("%d\n",va_arg(ap, int)); 
}

int main(void)
{     
    fun(3, 12,34.34,56); // 第一个参数代表后面有几个参数 
    printf("%d,%d,%d\n", 1,2,3,4,5 ); // 1,2,3
    printf("%d,%d,%d\n", 1 ,2); // 1,2,随机数 
    return 0;
} 

 

posted on 2020-11-05 23:03  软饭攻城狮  阅读(81)  评论(0编辑  收藏  举报

导航