C++ 中获取 可变形參函数中的參数[通俗易懂]

C++ 中获取 可变形參函数中的參数

大家好,又见面了,我是全栈君。

#include <iostream>
#include <stdarg.h>

using namespace std;

int ArgFunc(const char * str, ...)
{
	va_list ap;			 // 定义參数列表变量

	va_start(ap, str); 	 // 确定參数位置。表明从 str 開始获取參数

	// 開始获取參数    var_arg(ap, 数据类型)  返回获取的值
	cout<<va_arg(ap, int)<<endl;
	cout<<va_arg(ap, int)<<endl;

	// 由于仅仅传入两个參数。所以这里获取到的数值为 零
	cout<<va_arg(ap, int)<<endl;
	cout<<va_arg(ap, int)<<endl;

	va_end(ap);			// 将參数列表 ap 清零

	return 0;
}


int main()
{

	ArgFunc("func", 10, 20);   // 数据从右往左 压入 栈中 。栈顶元素为 "func"
	
	return 0;
}


/*****************************************************
*
*         获取可变參数
*
*  1. 包括头文件:#include <stdarg.h>
*  2. 定义 參数列表变量:va_list ap; 
*  3. 确定从哪里開始获取数据    va_start(ap, str); 表示在str參数之后開始获取參数。
*  4. 開始获取參数并指明类型,如:va_arg(ap, int); 获取第一个參数。并指明类型为 int 
*  5. 清空列表  va_end(ap);
*
******************************************************/


执行结果:

C++ 中获取 可变形參函数中的參数[通俗易懂]


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116509.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月20日 下午1:00
下一篇 2022年1月20日 下午1:00


相关推荐

  • C++11 多线程(std::thread)详解

    C++11 多线程(std::thread)详解注 此教程以 VisualStudio 10 3 MSVC19 29 30038 1 为标准文章目录线程 进程 多线程 什么是多线程 进程与线程的区别 C 11 的 std threadstd thread 常用成员函数构造 amp 析构函数常用成员函数举个栗子例一 thread 的基本使用例二 thread 执行有参数的函数例三 thread 执行带有引用参数的函数注意事项 剩下的内容还没写完 明天再更 线程 进程 多线程 什么是多线程 百度百科中的解释 多

    2026年3月20日
    2
  • Android 开发一定要看的15个实战项目

    Android 开发一定要看的15个实战项目前言 虽说网上有太多的 Android 课程 但是大多都是视频 有 Android 在线开发环境的几乎没有 但是对于学习 Android 的人来说拥有在线的 Android 开发环境是非常好的 可以随时动手操作学习 Android 开发 及时了解自己的掌握情况 实验楼就提供了 Android 在线开发环境 你不需要本地搭建 Android 开发环境 打开浏览器就可以进行 Android 开发的学习 可以随便折腾 而且边看边动手操作 可以更快上手 Android 开发 Android 开发在线环境项目介绍 项目一 SQLite 数

    2026年3月17日
    2
  • mysql longtext查询慢_select中的longtext使查询速度极慢

    mysql longtext查询慢_select中的longtext使查询速度极慢我有一个结构如下的普通平台CREATETABLE`oc_pipeline_logging`(`id`INT(11)NOTNULLAUTO_INCREMENT,`source`TEXT,`comments`TEXT,`data`LONGTEXT,`query`TEXT,`date_added`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTA…

    2022年5月14日
    107
  • 7-10 公路村村通(并查集kruskal)

    7-10 公路村村通(并查集kruskal)最小生成树题目链接现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 3

    2022年8月8日
    8
  • pycharm激活码2021年(已测有效)

    pycharm激活码2021年(已测有效),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    56
  • 王思聪新浪微博微博_kimi乔任梁王思聪

    王思聪新浪微博微博_kimi乔任梁王思聪作者|天使不投资人本文经授权转载自虎嗅APP(ID:huxiu_com)iG夺冠了!iG夺冠了!——11月3日,社交媒体成为了年轻人欢乐的海洋,微博尤甚。根本不知道LOL、也不知道iG是什么的叔叔阿姨们,对这次刷屏一点都不反感,毕竟IG老板,人称“校长”的王思聪,为了庆祝自家战队创造历史,在11月6日发起了一场豪气抽奖:从参与人数就可以隔着屏幕感受到一万元奖金的巨大…

    2022年8月30日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号