• 10_参数数量可变的函数及命令行参数


    参数个数可变的函数

    l  定义参数个数可变的函数

    l     stdarg.h头文件

    l     va_list类型

    l     va_start(parg,i1);

    l     va_arg(parg,int)

    一、定义参数可变的函数

      #include<stdarg.h>

     返回类型 函数名(参数类型1 固定参数名1,参数类型2固定参数名2,...);

     例:  int func(int i,int j,int k,...)

          int func(int i,...)

    二、获取参数

    va_list parg;    //定义parg指针

    va_start(parg,i); //初始化parg指针

    va_arg(parg,int); //获取参数

    三、实例

    求和函数:

    addnum(1,2,3,4,5,6,0)

    addnum(1,2,3,4,5,6,10,0)

    addnum(1,2,3,4,5,6,10,3,5,0)

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdarg.h>
    
    int addnum(int i,...)
    {
      va_list parg; 
      int num=i;//存放和
      int v=i;
      printf("%d",i);
      va_start(parg,i);
      v=va_arg(parg,int);//取i后边一个参数
      while(v!=0)
      {
          printf("+%d",v);
          num=num+v;
          v=va_arg(parg,int);//
      }
     va_end(parg);
     return num;
    }
     
     main(void)
    {   
     
     printf("=%d
    ",addnum(1,2,3,4,5,6,7,8,0));
     
        getchar();
        getchar();
        return 0;
    }
    View Code
    1+2+3+4+5+6+7+8=36
    View Code

    main函数及命令行参数

    l  main函数 

    l  int main(int argc,int* argc[])

    一、main函数常见的2种形式

       void main(void)

       int main(int argc,int* argc[])

    、获取参数

    argc表示参数列表内有几个参数

     argv[0] 表示进程完整路径

    、获取整型参数

    atoi(argv[i]) ;

     

    四、#include <Windows.h>

    GetCommandLineA

    操作系统提供的接口函数

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdarg.h>
    #include <Windows.h> 
    
     
     int main(int argn,char* argv[])// int a[1]//a[0]
    {   
      int i;
      printf("%d 
    ",argn);
      printf("%s",argv[0]);
    
      for (i=1;i<argn;i++)
      {
          printf("
     %d",atoi(argv[i]));
      }
    
      printf("
     %s",GetCommandLineA());
        getchar();
        getchar();
        return 0;
    }
    View Code
    1
    d:documentsvisual studio 2010ProjectsSolution1Debuglianxiccc.exe
     "d:documentsvisual studio 2010ProjectsSolution1Debuglianxiccc.exe"
    View Code

    在xx.exe中添加参数:  点击快捷方式 -> 属性->目标->在目标路径后面添加参数,用空格隔开 

  • 相关阅读:
    vue销毁当前组件的事件监听
    手机端下拉加载
    解决html2canvas在苹果手机上不调用问题
    html2canvas使用
    vue中三种路由传参方式
    倒计时
    判断打开的是企业微信浏览器和微信浏览器的方法
    js计算精度不准问题
    el-input 无法触发@keyup.enter 解决方法
    浏览器渲染页面的流程(参考网上有关资料整理)
  • 原文地址:https://www.cnblogs.com/sd-xyy/p/12913543.html
Copyright © 2020-2023  润新知