main函數(shù)的參數(shù)

作者:xcbeyond
瘋狂源自夢(mèng)想,技術(shù)成就輝煌!微信公眾號(hào):《程序猿技術(shù)大咖》號(hào)主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗(yàn),樂于技術(shù)輸出、分享,現(xiàn)階段從事微服務(wù)架構(gòu)項(xiàng)目的研發(fā)工作,涉及架構(gòu)設(shè)計(jì)、技術(shù)選型、業(yè)務(wù)研發(fā)等工作。對(duì)于Java、微服務(wù)、數(shù)據(jù)庫、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗(yàn)。 











對(duì)于C語言初學(xué)者而言,聽到mian()函數(shù)的參數(shù)或許會(huì)大吃一驚的,這也難怪,因?yàn)閯傞_始我們接觸的都是沒有參數(shù)的main函數(shù),也不曾談及其參數(shù)的問題。

在大部分情況下,main函數(shù)始終都作為主調(diào)函數(shù),也就是說,允許main函數(shù)調(diào)用其他函數(shù),并向函數(shù)傳遞參數(shù)。事實(shí)上,作為C程序入口的main函數(shù),也可以接收用戶輸入的參數(shù),即:main函數(shù)存在的參數(shù)情況。main函數(shù)的參數(shù)只能由命令行傳遞。曾今接觸過DOS命令行的人都該是了解的,一條完整的命令包括兩部分:命令與相應(yīng)的參數(shù),即:命令 參數(shù)1 參數(shù)2……

main函數(shù)帶參數(shù)的形式如下:

    int main(int argc,char *argv[])
     
    {
     
    ……
     
    }


在mian函數(shù)中,它使用了兩個(gè)參數(shù)來記錄數(shù)據(jù),其中一個(gè)名為argc的參數(shù)記錄了命令行中命令與參數(shù)的個(gè)數(shù),如有命令行:filename str1 str2 str3,其中filename為文件名,它是一個(gè)由C語言源程序經(jīng)編譯、鏈接后生成的可執(zhí)行文件,其后跟了3個(gè)參數(shù)(還可以有更多的參數(shù)),在main(int argc,char *argv[])中,另一個(gè)參數(shù)是一個(gè)指針數(shù)組char *argv[4],又來記錄命令行中命令和每個(gè)參數(shù)的字符串,如數(shù)組中保存的字符串如下:argv[0]=”filename”,argv[1]=”str1″,argv[2]=”str2″,argv[3]=”str3″

如舉例:

    /*程序名:main函數(shù)的參數(shù)*/
     
    #include<stdio.h>
     
    #include<conio.h>
     
    int main(int argc,char *argv[])
     
    {
     
    if(argc!=2)
     
    printf(“使用格式:程序名 您的名稱!\n”);
     
     
     
    printf(“您好,%s!\n”,argv[1]); //把a(bǔ)rgv[1]改為argv[0],觀察輸出結(jié)果
     
    getch();
     
    return 0;
     
    }