• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 可变参数函数

可变参数函数

作者:KnowBug的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-17

KnowBug的博客通过本文主要向大家介绍了c语言,函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
1、可变参数为数值

#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>		//定义了很多宏,可以处理可变参数的函数

double add(int num, ...)		//...代表可变的参数
{
	double res = 0.0;
	
	va_list argp;			//创建一个char类型的指针
	va_start(argp, num);	//读取num个参数,把地址存储在argp中

	for (int i = 0; i < num; i++)
	{
		//printf("%f\n", va_arg(argp, double));	//依次读取参数
		res += va_arg(argp, double);
	}
	va_end(argp);
	return res;
}

void main()
{
	int x = 10;
	double res;

	res = add(x, 1.2, 2.3, 3.4, 4.5, 5.6,
			  6.7, 7.8, 8.9, 9.10, 10.11);

	printf("%f\n", res);

	system("pause");
}

2、可变参数为字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>		//定义了很多宏,可以处理可变参数的函数
//typedef char* va_list;
#include<string.h>

//可以接收多个字符串的可变参数函数
//可变参数函数至少定义一个参数(用于指定可变参数的数量)
void go(int num, ...)
{
	va_list argp;		//定义指针,用于存储地址
	va_start(argp, num);	//指定有num个参数

	for (int i = 0; i < num; i++)
	{
		char str[50];		//用于保存读取的字符串参数
		strcpy(str, va_arg(argp, char *));	//按照字符串的参数读取一个参数,拷贝到str
		printf("%s\n", str);
		system(str);
	}
	va_end(argp);		//结束调用
}

void main()
{
	go(5, "notepad", "calc", "tasklist", "ipconfig", "mspaint");
	system("pause");
}
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言中的const,free用法详解
  • 可变参数函数
  • c计算闰年
  • C和C++的内存操作小贴士(一):const char*的内存释放问题
  • 最长公共子序列LCS C++实现
  • c语言strcmp函数实现
  • 数组作为函数参数、scanf初始化指针
  • c语言中指针大小以及使用初始化问题
  • c语言一级指针简单应用
  • c语言实现字符串中单词的反转

相关文章

  • 2017-05-28C++中string的模拟实现
  • 2017-05-28C++中指针和引用的区别详解
  • 2017-05-28实例讲解C++编程中对设计模式中的原型模式的使用
  • 2017-05-28C/C++指针小结
  • 2017-05-28C 语言基础教程(一)颜色加亮
  • 2017-05-28C语言的isatty函数和ttyname函数以及sendmsg函数用法
  • 2017-05-28关于C++中定义比较函数的三种方法小结
  • 2022-04-30进制转换:二进制、八进制、十六进制、十进制之间的转换
  • 2017-05-28谈谈C++学习之Pair的使用方法
  • 2017-05-28C/C++中的typedef和#define详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 二分法求多项式在-10 10间值的实现代码
    • C语言中settimeofday函数和gettimeofday函数的使用
    • break的使用for循环嵌套示例
    • C++ 实现求最大公约数和最小公倍数
    • C++用指针变量作为函数的参数接受数组的值的问题详细总结
    • C++函数模板与类模板实例解析
    • 深入分析Linux下如何对C语言进行编程
    • 基于C语言实现的贪吃蛇游戏完整实例代码
    • C++递归删除一个目录实例
    • C语言 数组中重复的数字分析及方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有