main函式引數及可變引數列表

2021-08-04 23:30:37 字數 1249 閱讀 9251

c語言中main函式是程式的入口函式,一般在使用main函式的時候都是不帶引數的,那麼main函式帶上引數又如何呢?

main函式形式:

int main(int argc,char *argv,char *envp)

可知main函式有三個引數:

1,argc:記錄命令列引數的個數(包含第乙個引數–可執行檔名),是乙個整型變數;

2,argv:表示命令行的每乙個引數的字元指標陣列,每乙個元素是乙個字元指標,指向乙個字串;

3,envp:字元指標陣列,每乙個元素是指向乙個環境變數的字元指標(最後乙個元素是null)。

main函式不能再程式內部取得實際值,它的引數是從作業系統命令列上獲取的,

命令列的一般形式為」c:>可執行檔名 引數 引數 引數」。

根據乙個例項深入認識一下mian函式的引數:使用main函式的引數,實現乙個整數計算器

int add(int x, int y)

int sub(int x, int y)

int mul(int x, int y)

int div(int x, int y)

int main(int argc,char *argv)

ben = atoi(argv[2]);//atoi函式把字串轉化成乙個整數值

tmp = atoi(argv[3]);

switch (*(argv[1] + 1))

}

argc等於4,argv有四個有效引數。

可變引數列表

可變引數列表可以通過巨集來實現,定義在stdarg.h標頭檔案中。這個標頭檔案中宣告了乙個型別va_list 和三個巨集——va_start, va_arg, va_e。

使用可變引數,實現函式求未知引數部分n個數中的最大值

#include

#include

#include

int max(int n, ...)

return max;

va_end(arg);

}int main()

可變引數 函式 可變引數列表 1

我們在c語言程式設計中有時會遇到一些引數個數可變的函式,即函式的入參個數和型別是不確定的,例如printf 函式,其函式原型為 int printf char format,它除了有乙個引數format固定以外,後面跟的引數的個數和型別是可變的 用三個點 做引數佔位符 實際呼叫時可以有以下的形式 p...

可變引數列表

模擬實現printf函式 va list是在c語言中解決變參問題的一組巨集,所在標頭檔案 include 用於獲取不確定個數的引數 va start,函式名稱,讀取可變引數的過程其實就是在堆疊中,使用指標,遍歷堆疊段中的引數列表,從低位址到高位址乙個乙個地把引數內容讀出來的過程 va arg,這個巨...

可變引數列表

小二,上 class a public class varargs two param static void twostringparam string a,string b three param 參照上兩種寫法,一直往後面加。是不是感覺很憂傷 幸好這不是真的。string.a static v...