惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 【当耐特】
博客园_首页
博客园 - Franky
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
M
MIT News - Artificial intelligence
D
Docker
H
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
S
SegmentFault 最新的问题
腾讯CDC
Latest news
Latest news
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
美团技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
C
Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Schneier on Security
Spread Privacy
Spread Privacy
Recent Announcements
Recent Announcements
T
Threat Research - Cisco Blogs
F
Full Disclosure
T
Threatpost
T
Tenable Blog
AWS News Blog
AWS News Blog
Cloudbric
Cloudbric
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
W
WeLiveSecurity
I
Intezer
月光博客
月光博客
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
Lohrmann on Cybersecurity
Hacker News - Newest:
Hacker News - Newest: "LLM"

博客园 - JieNet

MFC中的数据类型 HardwareSerialNumber(硬盘号,CPU号) - JieNet - 博客园 Windows 7 与 XP、Vista 特性对照表 typename 还是超级无敌的基础。。。 函数指针。。。超级无敌的基础了 关于const和函数 - JieNet - 博客园 iterator类对象和普通指针 委托与事件 .NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES 事件 ID: 5603 将DAL层从Sql Server 迁移到 Access 时遇到的问题 ListView:How to.... CSS剪切图片 SQL Server TransAction 全部回滚 所有希腊字母及读音 Error:'Sys' is undefined. VS2008 下安装 AjaxControlToolkit-Framework3.5 JS,CSS 禁止复制,禁止打印,禁止…… ADSL拨号错误代码详解
可变参数的基本应用
JieNet · 2009-06-02 · via 博客园 - JieNet

Code
#include<iostream>
#include 
"stdarg.h" // 包含 va_list,va_arg,va_start,va_end等宏

using std::cout;
using std::endl;int Sum(int firstArg,)
{
    
int sum=0;
    
    va_list arg_ptr;
//初始化指针,将指针指向第一个参数firstArg,
    
//函数参数中必需有至少一个固定的参数,固定的参数用来初始化指针的指向。
    va_start(arg_ptr,firstArg);//如何确定有多少个参数
    
//第一种方法:一般传递参数的时候将firstArg赋值为参数的个数
    
//for(int i=0;i<firstArg;i++)
    
//{
    
//    //va_arg(arg_ptr,int);用来取出当前指针指向的值后将指针指向下一个值。
    
//    //第二个参数表示当前值的类型。
    
//    int currentArg = va_arg(arg_ptr,int);
    
//    sum+=currentArg;
    
//}
    
    
//第二种方法:把最后一位参数设置为一个特殊的值,然后判断
    
//int currentArg=firstArg;
    
//while(currentArg!=-1)
    
//{
    
//    sum+=currentArg;
    
//    currentArg = va_arg(arg_ptr,int);
    
//}
    
    
//用来将指针复位(设置为NULL)
    va_end(arg_ptr);
 
    
return sum;
}
int main()
{
    
//第一种方法:一般传递参数的时候将firstArg赋值为参数的个数
    
//cout<<"sum(3,10,20,30):"<<Sum(3,10,20,30)<<endl;
    
    
//第二种方法:把最后一位参数设置为一个特殊的值,然后判断
    
//cout<<"sum(10,20,30,-1):"<<Sum(10,20,30,-1)<<endl;
    
    system(
"pause");
    
return 0;
}