您的位置:首页 > 编程语言 > C语言/C++

C语言之可变参数函数

2018-02-10 16:35 267 查看
#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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: