程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言入門知識 >> C語言中的可變參數列表

C語言中的可變參數列表

編輯:C語言入門知識

C語言中的可變參數列表:從語言中有時候會遇到一些參數個數是可變的函數,像scanf,printf等,這些函數內部的參數列表都是可變的。

如函數原型:scanf(const char * format,…);
解釋:除了format以外,後面跟著的參數 個數,類型是可變的,用…作為一種占位符號。
“…”稱為可變參數列表,可以用來接受個數和類型不確定的參數

使用:
可變參數列表在C語言中使用這樣的三個宏(va_start,va_arg,va_end)和一個類型(va_list)來進行實現的,他們都是定義在stdarg.h頭文件中的

宏:
1:va_start原型:
void va_start(va_list ap,paramN);
參數:va_list:存儲參數的類型信息
ap:可變參數列表地址
paramN:確定的參數
2:va_arg原型:
void va_arg(va_list ap,type);
返回下一個參數的值
3:va_end原型:
void va_end(va_list ap,type);
關閉初始化的列表

使用方式:
1. 使用va_list初始化可變參數列表
2. 使用va_arg逐個獲取參數值
3. 用va_end將可變參數列表清空

示例代碼

#include
#include

float average_list(int value_num,...);


int main(int argc,char * argv[]){
    printf("average_1:%.2f\n",average_list(8,1,3,5,7,9,12,15,17));

    return 0;
}



float average_list(int value_num,...){
    va_list list;
    float sum = 0.0f;
    va_start(list,value_num);
    int i ; 
    for(i = 0;i

輸出的結果為: average_1:8.62

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved