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 }
  • 相关阅读:
    springboot 打包部署
    mybatis 插入空值时报错 TypeException
    margin 居中
    node.js 开发命令行工具 发布npm包
    webstorm vue环境设置
    vue数组操作不触发前端重新渲染
    数字英文超过宽度不换行问题
    Jquery checkbox 遍历
    小图标垂直居中
    vue this.$router.push 页面不刷新
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8150956.html
Copyright © 2011-2022 走看看