C语言之可变参数函数

#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");
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章