#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語言之可變參數函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.