#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h> //标准参数 ----> 可变参数
//整数
int add01(int num, ...) //...代表可变参数
{
int res = 0;
va_list argp; //存储参数开始的地址
//va_list char*类型的指针,
va_start(argp, num); //从首地址开始,读取num个数据
for (int i = 0; i < num; i++)
{
res += va_arg(argp, int);//读取一个数据按照int类型解析
}
va_end(argp); //结束读取
return res;
}
void main01()
{
printf("%d\n", add01(3, 1, 2, 3));
printf("%d\n", add01(4, 1, 2, 3, 4));
system("pause");
}
//连续不断的字符串
void go(int num, ...)
{
va_list argp; //存储参数开始的地址
va_start(argp, num);
for (int i = 0; i < num; i++)
{
char str[50] = { 0 };
sprintf(str, "%s", va_arg(argp, char *));
system(str);
}
va_end(argp);
}
void showint(int start, ...)
{
int argvalue = start;
va_list argp;
va_start(argp,start);
do {
printf("%d\n", argvalue);
argvalue = va_arg(argp, int);
} while (argvalue != -1);
va_end(argp);
}
void main()
{
go(3, "notepad", "calc", "tasklist");
system("pause");
}
我只想吐槽一句,为什么java,C中额可变参数都是"…"!
感觉还是java封装的比较好用一点点!!(自我感觉而已)