對於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 自變數...