zoukankan      html  css  js  c++  java
  • 函数不定参数

    函数参数是以数据结构:栈的形式存取,从右至左入栈.
    1. va_list用于声明一个变量,我们知道函数的可变参数列表其实就是一个字符串,所以va_list才被声明为字符型指针,
    这个类型用于声明一个指向参数列表的字符型指针变量,例如:va_list ap; //ap:arguement pointer
    2. va_start(ap,v),它的第一个参数是指向可变参数字符串的变量,第二个参数是可变参数函数的第一个参数,通常用于指定可变参数列表中参数的个数。
    3. va_arg(ap,t),它的第一个参数指向可变参数字符串的变量,第二个参数是可变参数的类型。
    4. va_end(ap) 用于将存放可变参数字符串的变量清空(赋值为NULL)

    int sum(int number,...)
    {
    	va_list vaptr;
    	int i = 0;
    	int sum = 0;
    	va_start(vaptr, number);
    
    	for(i = 0; i < number; i++)
    	{
    		printf("fjut:%d\n", va_arg(vaptr, int));
    	}
    	va_end(vaptr);
    	return sum;
    }
    
    void fun(int a, ...)
    {
    	int* temp = &a;
    	temp++;
    
    	for (int i = 0; i < a; i++)
    	{
    		cout << *temp<< endl;
    		temp++;
    	}
    }
    
    int main ()
    {
    	fun (4, 4, 3, 2, 1);
    	sum (4, 4, 3, 2, 1);
    
    	return 0;
    }
  • 相关阅读:
    SpringBoot整合阿里云OSS
    UVALive
    HDU 5794 A Simple Chess dp+Lucas
    数论
    UVALive
    UVALive
    HDU 5792 World is Exploding 树状数组+枚举
    UVALive
    UVALive
    UVALive
  • 原文地址:https://www.cnblogs.com/fjut/p/2935802.html
Copyright © 2011-2022 走看看