zoukankan      html  css  js  c++  java
  • 16.C语言可变参数

    //可变参数实现多个参数求和
    1
    #define _CRT_SECURE_NO_WARNINGS 2 3 #include <stdlib.h> 4 #include <stdio.h> 5 #include <stdarg.h>//标准参数 6 7 int add(int num, ...)//...代表可变参数 8 { 9 int res = 0;//结果 10 va_list argp;//存储参数开始的地址 11 va_start(argp, num);//从首地址开始,读取num后面的数据 12 for (int i = 0; i < num; i++) 13 { 14 res += va_arg(argp, int);//读取一个数据按照int解析 15 } 16 va_end(argp);//结束读取 17 18 return res; 19 } 20 21 void main() 22 { 23 printf("%d",add(3,1,2,3)); 24 25 26 27 getchar(); 28 }
     1 //可变参数实现多个字符串system
     2 void run(int num, ...)
     3 {
     4     va_list argp;//存储参数开始的地址
     5     va_start(argp, num);//从首地址开始,读取num后面的数据
     6     for (int i = 0; i < num; i++)
     7     {
     8         char str[50];
     9         sprintf(str, "%s", va_arg(argp, char *));//读取一个数据按照char *解析
    10         system(str);
    11     }
    12     va_end(argp);//结束读取
    13 }
    14 
    15 void main()
    16 {
    17     run(3, "notepad", "calc", "tasklist & pause");
    18 }
     1 //可变参数实现输出不定个数的数字
     2 void showint(int start, ...)
     3 {
     4     va_list argp;//存储参数开始的地址
     5     va_start(argp, start);//从首地址开始,读取start后面的数据
     6     int argvalue = start;//第一步初始化
     7     do
     8     {
     9         argvalue = va_arg(argp, int);
    10         printf("%d
    ", argvalue);
    11     } while (argvalue != -1);
    12 
    13     va_end(argp);//结束读取
    14 }
    15 
    16 void main()
    17 {
    18     showint(1, 3, 4, 56, 3,-1);
    19     system("pause");
    20 }
  • 相关阅读:
    Linux常用命令大全,常用命令总结
    mysql Invalid default value for 'time'
    Laravel 集合 Collection
    WAMP中的mysql设置密码
    laravel jwt 无感刷新token
    laravel tymon/jwt-auth header 发送token
    使用lamp一件安装包 遇到is not within the allowed path(s)的问题
    Linux查看网络和IO性能问题
    jenkins重启导致的项目全部丢失
    算法-排序算法-快速排序
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8150956.html
Copyright © 2011-2022 走看看