感謝IT之家網(wǎng)友 stevapple 的投遞
對于C語言的初學(xué)者,關(guān)于main函數(shù)這個程序主入口一定接觸得再多不過了。我們來看看下面幾種常見的入門程序——Hello World:
如果是由國內(nèi)老教材(例如NCRE二級C語言)入門的,你見到的可能是下面這個:
#include <stdio.h>
void main() {
printf("Hello World!");
}
如果是新一點(diǎn)的教材,也可能是這樣:
#include <stdio.h>
int main() {
printf("Hello World!");
return 0;
}
如果和筆者一樣翻閱過《C Primer Plus》,或許還能找到一個不一樣的表達(dá):
#include <stdio.h>
int main(int argc, char* argv[]) {
printf("Hello World!");
return 0;
}
實(shí)際上,Xcode默認(rèn)的C語言模版正是這樣的寫法。
那么,這個多出來的main函數(shù)參數(shù)究竟是什么呢?
main函數(shù)作為程序主入口,其參數(shù)其實(shí)就是程序運(yùn)行的參數(shù)。
第一個參數(shù),整型,通常命名為argc,代表參數(shù)個數(shù)。argc是一個正整數(shù),因?yàn)槌绦蛩诘穆窂郊吹谝粋€參數(shù)。
第二個參數(shù),通常命名為argv,是一個指向字符串的指針數(shù)組。這是一個個參數(shù)的集合,依次以指針形式依次存放在數(shù)組中。
所以,光是寫一個Hello World實(shí)在是太浪費(fèi)這個參數(shù)啦有木有?其實(shí)參數(shù)的作用還可以這么理解:
比方說移動文件/重命名用的mv指令,如果是一個C語言程序……
mv 1.h 2.h
調(diào)用程序的指令”mv”就是第一個參數(shù),”1.h”、”2.h”分別是第二個和第三個參數(shù),argc的值就是3。
最簡單的應(yīng)用見下:
#include <stdio.h>
//以下實(shí)現(xiàn)一個反序輸出參數(shù)的C語言程序
int main(int argc, char* argv[]) {
printf("This program runs in %s", argv[0]);
//判斷是否有外部參數(shù)
if(argc > 1) {
printf(", whose arguments are reversed as follows: \n");
//反序遍歷
for(int argx = argc - 1; argx > 0; argx--) printf("%s\n", argv[argx]);
} else printf(" with no argument. ");
return 0;
}
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。