六、函数参数不确定
一、函数头
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; }