【C编程】变参函数学习!
2020-05-17 本文已影响0人
逐风墨客
/*=========================================
* Copyright (c) 2020, 逐风墨客
* All rights reserved.
*
* 文件名称:study_varpara.c
* 功能描述:把传入的多个参数正序、倒序显示
* 所用函数:void show_parachage(int n, ...)
* 返回值:无
=========================================*/
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
int mian(void)
{
void show_parachange(int n, ...);
system("clear");
show_parachange(6, 3, 5, 6, 3, 77, 89);
show_parachange(4, 3, 5, 6, 3, 77, 89);
show_parachange(0, 3, 5, 6, 3, 77, 89);
show_parachange(-2, 3, 5, 6, 3, 77, 89);
return 0;
}
void show_parachange(int n, ...)
{
int i;
int arg;
va_list ap;
printf("\nThere is %d parameters in total!\n", n);
va_start(ap, n);
printf("direct : ");
for (i=0, i<n, i++)
{
arg = va_arg(ap, int);
printf("%d", arg);
}
va_end(ap);
printf("\n");
va_start(ap, n);
ap = (int *)ap + sizeof(va_list) + 1;
printf("reverse : ");
for (i=0, i<n, i++)
{
arg = va_arg(ap, int);
printf("%d", arg);
ap = (int *)ap + 2;
}
va_end(ap);
printf("\n");
}
程序运行结果:
程序运行结果.png