C算法&面试题C语言

【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
上一篇 下一篇

猜你喜欢

热点阅读