zoukankan      html  css  js  c++  java
  • 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中添加参数:  点击快捷方式 -> 属性->目标->在目标路径后面添加参数,用空格隔开 

  • 相关阅读:
    Protobuf for Python测试保存和读取文件
    windows下使用pip安装python的第三方lxml库
    WIN10 CMD 启动虚拟WIFI
    关于 DataGridTextColumn的IsReadOnly
    wpf converter converterparameter 绑定多参数
    wpf 客户端 添加qq客服咨询
    错误信息:内存位置访问无效。 (Exception from HRESULT: 0x800703E6)
    acrgis导出成tiff图片,全是黑色
    webStrom访问只一个很简单的html文件的时候显示local host无法访问。。
    pandas 将excel一列拆分成多列重新保存
  • 原文地址:https://www.cnblogs.com/sd-xyy/p/12913543.html
Copyright © 2011-2022 走看看