C语言函数变参问题
来源:互联网 发布:股票智能交易软件 编辑:程序博客网 时间:2024/06/05 10:17
C语言是支持函数的参数个数不确定的情况,例
3.现在我们举个实例
输出结果是: the max number is 44
如我们经常用的printf()函数就是如此。
<span style="font-family:Microsoft YaHei;">//extern void printf(const char *format,...); printf("i=%d;j=%d", i, j);</span>
上面的 参数 I 和 j 就是变参,我们无确定要给这个函数多少参数的时候就会想到用变参。
使用变参的方法如下:
1. 头文件:
<span style="font-family:Microsoft YaHei;">#include<stdarg.h></span>
2. 可以使用的方法:
<span style="font-family:Microsoft YaHei;">type va_arg( //遍历参数表 va_list arg_ptr, type );void va_copy( //复制参数表 va_list dest, va_list src); // (ISO C99 and later)void va_end( //释放参数表 va_list arg_ptr );void va_start( //初始化参数表1 va_list arg_ptr, prev_param ); // (ANSI C89 and later)void va_start( //初始化参数表2 arg_ptr ); // (Pre-ANSI C89 standardization version)</span>
3.现在我们举个实例
用getmax(int num,...)函数求最大值。
eg: getmax(3,1,2,3),求1,2,3的最大值
<span style="font-family:Microsoft YaHei;">#include<iostream>#include<stdarg.h>using namespace std;//num必须是表示这个形参的个数int getmax(int num,...){int m=-0xffffffff; //初始化m为一个最小值va_list va; //声明一个参数表va_start(va,num); //初始化一个参数表while(num--){int t=va_arg(va,int); //开始遍历参数表if(t>m) //计算最大值m=t;}va_end(va); //结束释放这个表return m;}void main(){/*double i1=3,i2=8;long i3=44;*/ int i1=3,i2=8;int i3=44;cout<<"the max number is "<<getmax(3,i1,i2,i3)<<endl;}</span>
输出结果是: the max number is 44
0 0
- C语言函数变参问题
- c语言变参函数-
- c语言变参函数
- C语言变参函数
- C语言变参函数
- C语言变参函数
- C语言变参问题
- C语言的变参函数设计
- C语言中的变参函数
- C语言变参函数解析
- C语言的变参函数设计
- 【转】c语言变参函数
- C语言的变参函数设计
- c语言变参函数设计
- C语言变参函数解析
- C语言的变参函数设计
- C语言变参函数的编写
- C语言变参函数的编写
- C/C++(&Java) Volatile关键词深度剖析
- C语言:模拟实现memmove
- C语言:模拟实现memcpy
- HDU 5378 (概率dp)
- 【笔试题】C语言:模拟实现strcmp
- C语言函数变参问题
- 【笔试题】C语言:模拟实现strcat
- 安装 Maven
- Android Service完全解析,关于服务你所需知道的一切(上)
- C语言:模拟实现strcpy
- 【笔试题】C语言:模拟实现strncmp
- 【笔试题】C语言:模拟实现strncat
- 线程简介
- 【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。