C main函式剖析。

2021-09-07 14:08:24 字數 1561 閱讀 1907

對於main函式。我想不論什麼乙個接觸到c語言的都不會陌生,可是說起main()函式有引數,你可能會產生非常多疑問了。

首先,我們來看下msdn,這個裡面對main()函式有具體的說明。

在這裡,我們能夠看到main()函式事實上是含有三個引數的,各自是

int argc, char *ar**[ ], char *envp[ ]

這三個引數事實上就是main函式的引數。

在c的編譯器中。通常是同意main函式是沒有引數的。

1.argc (argument count)

這第乙個引數是int型別的argc,argc是乙個整數。從字面上的意思我們就知道,他說的是給引數計數,指定有多少個引數被傳遞給命令列的程式。argc至少是1。

2.ar**(argument value)

ar** 第二個引數是乙個指向字串的指標陣列。

命令列中的每乙個字串被儲存到記憶體中,而且分配乙個指標指向它。它存放了命令列的引數。

在通常,系統使用空格把各個字串隔開,然後把程式本身的名字賦給ar**[0],把系統最後乙個字串賦給ar**[1]。

3.envp

這個不經常使用,用來存放系統的環境變數,而且是以null結尾。

envp能夠是char*型別也能夠是char**型別。本文上面的樣例使用的是前者。假設使用寬字符集,則應使用wmain取代main,並使用wchar*或wchar**型別的envp,在程式執行過程中,envp所存的環境變數是以字串陣列儲存,當程式執行時須要環境變數做參考時就須要它。而且,當你更改了環境變數想要恢復,也能夠到這個裡面去尋找。

接下來附上一道關於main函式引數使用的筆試題。

1.使用main函式的引數,實現乙個整數計算器,程式能夠接受三個引數,第乙個引數「-a」選項執行加法。「-s」選項執行減法,「-m」選項執行乘法,「-d」選項執行除法,後面兩個引數為運算元。

比如:輸入test.exe -a 1 2

執行1+2輸出3

//1.使用main函式的引數,實現乙個整數計算器,程式能夠接受三個引數,第乙個引數「 - a」選項執行加法,「 - s」選項執行減法,「 - m」選項執行乘法,「 - d」選項執行除法,後面兩個引數為運算元。

//比如:輸入test.exe - a 1 2

//執行1 + 2輸出3

#include

#include

#include

int main(int argc,char *ar**)

else

if (strcmp("-s", ar**[1]) == 0)

else

if (strcmp("-m", ar**[1]) == 0)

else

if (strcmp("-d", ar**[1]) == 0)

printf("%d\n", ret);

system("pause");

return

0;}

初學小白,希望大家多多提意見!

進入C main 函式

displays a message language c include a preprocessor directive using namespace std make definitions visible int main function header end of function b...

C main函式的引數

c 的main函式可以沒有輸入引數,也可以有輸入引數,而且只能有兩個引數,習慣上coding如下 int main int argc,char ar 或者 int main int argc,char ar 其中,argc argument count 表示傳入main函式的陣列元素個數,為int型...

C main 函式的引數

c語言中第一接觸的函式一定是main 對main 函式的引數了解到少呢?int main int argc,char ar char envp main 函式的引數 引數argc 自變數計數 argument count 顧名思義存放的是int型別的數值,即ar 陣列中不為空的個數。引數ar 自變數...