#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdio.h>
#include <stdarg.h> //包含很多可变参数的宏的头文件
#include <string.h> //有关于字符串的函数
//可以接受多个参数加法的可变参数函数
int add(int num, ...) //...表示可变的参数,第一个参数为个数
{
int last = 0.0;
va_list argp; //创建一个char类型的指针
//typedef char * va_list;
va_start(argp, num); //读取有num个参数,把地址放在argp
for (int i = 0; i < num; i++)
{
int temp = va_arg(argp, int);//读取参数,挨个读取
printf("%d\n", temp);
last += temp;
}
va_end(argp); //结束读取
return last;
}
//可以接受多个字符串的可变参数函数
//可变参数至少自己定义一个参数
void go(int num, ...)
{
va_list argp; //定义指针,用于存储地址
va_start(argp,num); //代表有num个参数
for (int i = 0; i < num; i++)
{
//char str[50];
//strcpy(str,va_arg(argp,char *));
//printf("%s",str);
printf("%s", va_arg(argp, char *)); //以字符串的形式读取参数
}
va_end(argp); //结束调用
}
int main()
{
int num = 5;
printf("加法结果为%d\n",add(num,1,2,3,4,5));
go(5,"你好\n","明天\n","山阴路的夏天\n","热河\n","杭州\n");
system("pause");
}
C语言之可变参数函数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.