初识-----可变参数列表
首先,我们需要知道可变参数列表到底是什么,它又有什么作用?
一般我们在编程的时候,函数中形参的个数通常是确定的,在调用时要依次给出与形参对应的实参。但在某些情况下我们希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。
因此,它的一个很重要的作用就是我们可以根据需要来确定形参个数,而不用多次定义不同的函数来调用。
对于可变参数列表,我们首先需要了解一些编程中会用到的东西。
首先,我们需要用到头文件 stdarg.h 来定义几个函数
这个是我们的部分程序,其中:
va_list 是用于存放参数列表的数据结构。
va_start 函数根据初始化last来初始化参数列表。
va_arg 函数用于从参数列表中取出一个参数,参数类型由type指定。
va_end 函数执行清理参数列表的工作。
说明:
va_start(itor, unusedInt);用于根据unusedInt初始化可变参数列表。
va_arg(itor, char *);用于从参数列表中取出一个参数,其中的char *用于指定所取的参数的类型为字符串。每次调用va_arg后,参数列表itor都会被更改,以使得下次调用时能得到下一个参数。
va_end(itor);用于对参数列表进行一些清理工作。调用完va_end后,itor便不再有效。
关于这几个代码的具体的作用,可以在百度上查找进行了解。
下面进入实例,我们先看一段代码:
我们可以看到,对于这段代码,我们只定义了一个被调用的函数,但是在主函数中,我们用同一个函数,实现了对三个含有不同参数数量的函数的输出,这个就是可变参数列表的一个作用。
然后看另一个代码:
同样的道理,这次我们输出的是字符串。
以上就是我个人关于可变参数列表的一些理解,欢迎纠错。 我们共同进步。