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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm添加pip指令安装库的方法[通俗易懂]

    pycharm添加pip指令安装库的方法[通俗易懂]我们在cmd命令窗口通过pip指令安装的python第三方库,在使用pycharm的时候并不能直接使用,需要通过配置与python3.8的外部库相连接。1.file–>setting2.project–>ProjectInterpreter选择python.exe的路径,一般在python3.x文件夹下3.添加python.exe的路径如果没有类似python3.8/python.exe的选项,就点击右侧的设置按钮添加然后点击OK就会出现如下通过pip指令安装的所有第三方库,

    2022年8月25日
    5
  • 【HDU2865】构造矩阵+Burnside定理+欧拉函数类似poj2888[通俗易懂]

    【HDU2865】构造矩阵+Burnside定理+欧拉函数类似poj2888[通俗易懂]BirthdayToyTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):466    AcceptedSubmission(s):238ProblemDescriptionAekdyCoinloves

    2022年7月23日
    4
  • UFT录制

    UFT录制在惠普实训学习了UFT(UnifiedFunctionalTesting),是一种自动化测试工具,以VBScript为内嵌语言。打开UFT主界面,选择菜单file/new或file/open可以新建或打开UFT测试。在新建的测试界面打开action,使用HP自带的飞机订票系统软件,打开飞机订票系统,然后点击录制record,弹出窗口选择recordandruntesting,单击OK按钮

    2022年5月23日
    78
  • 五笔结构与识别码_五笔打字识别码怎么区分

    五笔结构与识别码_五笔打字识别码怎么区分4.末笔字型识别码表末笔笔画只有五种,字型信息只有三类,因此末笔字型交叉识别码只有15种如表4-1所示。表4-1末笔字型识别码表左右型1上下型2杂合型3横111G一12F二

    2022年8月3日
    11
  • vim命令多行操作

    vim命令多行操作一、文件内多行注释:1.按esc进入命令行模式下,按下Ctrl+v,进入列(也叫区块)模式;2.在命令模式下h键或j键选择需要注释的多行;3.按下(大写)“i”键,进入插入模式;4.输入注释符#或//5.最后按下“Esc”键。注:在按下esc键后,即可出现二、文件内删除多行注释:1.首先按esc进入命令行模式下,按下Ctrl+v,进入列模式…

    2022年6月26日
    101
  • Latex中希腊字母如何加粗和斜体

    Latex中希腊字母如何加粗和斜体Latex中希腊字母如何加粗和斜体原创不易,路过的各位大佬请点个赞一、希腊字母加粗注意:\mathbf不起作用方案一、用\usepackage{amsmath}\boldsymbol{\sigma}\mathbf只对公式中的普通字母ABC…abcdef等起作用。方案二、更好的方法是使用\usepackage{bm}\bm{}来加粗。二、希腊字母斜体注意:\textit不起作用\mit+\希腊字母如:\mit\Omega原创不易,路过的各位大佬请点个赞…

    2022年10月13日
    0

发表回复

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

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