vc++的问题 书上写的很糟根本看不懂

来源:百度知道 编辑:UC知道 时间:2024/06/17 21:47:55
下面这个题有好多地方都看不懂 请详细说明运行过程

#include "stdafx.h"
#include <stdarg.h>
void OutputInfo(int num,...) //定义一个省略号参数的函数
{
va_list arguments; //定义va_list类型变量
va_start(arguments,num);
while(num--) //读取所有参数的数据
{
char* pchData = va_arg(arguments,char*); //获取字符串数据
int iData = va_arg(arguments,int); //获取整型数据
printf("%s\n",pchData); //输出字符串
printf("%d\n",iData); //输出整数
}
va_end(arguments);
}

int main(int argc, char* argv[])
{
OutputInfo(2,"Beijing",2008,"Olympic Games",2008); //调用OutputInfo函数
return 0
va_list va_start va_arg va_end 关于这几个还是模糊

还有这里的num--是什么

这个很容易的。
首先va_list这个类型实际的定义是typedef char * va_list;
用省略号表示这是一个可变参数的函数。就是这个函数可以有任意多个参数。

比如printf这个函数就可以有任意个参数。

如果这么写的话OutputInfo(3,"Beijing",2008,"Olympic Games",2008,"asdfasdf",2009); 最后会输出

Beijing
2008
Olympic Games
2008
asdfasdf
2009

不知道你还有哪里不理解,可以给我留言!~

num----number,数量的意思,是一数字变量!