天天看點

main()函數 與 指令行參數end 

本文目錄

1、main函數的傳回值

2、main函數的參數

3、測驗指令行參數

1、main函數的傳回值

  • main函數是作業系統調用的函數
  • 作業系統總是将main函數的傳回值作為程式的退出狀态
  • main函數的傳回值正常來說是0,如果是其他值,就是錯誤的狀态。

2、main函數的參數

  • 程式執行的時候可以向main函數傳遞參數
  • main函數的參數是可變的,可以有多個參數。

下面是main函數的四種形式: 

int main()
int main(int argc)
int main(int argc, char* argv[])
int main(int argc, char* argv[], char*env)
           

其中: 

  • argc :指令行參數個數
  • argv:指令行參數數組
  • env: 環境變量數組

3、測驗指令行參數

 程式如下,我們通過列印來看看傳入的指令行參數到底是什麼。

#include <cstdio>

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

    printf("%d\n", argc);
    for (int i = 0; i < argc; i++)
        printf("%s\n", argv[i]);
}
           

 當我們什麼都不操作,直接運作程式時,輸出如下:

1
D:\ComputerProgramming\2020Algorithm\Coding\cmake-build-debug\111.exe
           

🔺可以發現,在沒有任何指令行參數輸入時:argc(指令行參數個數)的值為1,argv(指令行參數數組)就隻有一個元素 —— 儲存着該代碼運作檔案的絕對路徑。

那麼如果我們在指令行傳入了參數呢?下面來看看:

打開cmd視窗,将該代碼的可執行(.exe)檔案拖入視窗。然後就可以輸入我們需要的指令行參數(字元串類型)了,記住從exe檔案開始,每個字元串之間都要有空格,輸入完成後按下回車。

main()函數 與 指令行參數end 
main()函數 與 指令行參數end 

看看程式運作的輸出結果:

main()函數 與 指令行參數end 

好了,這下就明白了。C程式main函數,有作業系統調用,故傳入其中的參數,是由作業系統傳入的。

  • 在預設情況下,argc(指令行參數個數)的值為1,argv(指令行參數數組)就隻有一個元素 —— 儲存着該代碼運作檔案的絕對路徑。
  • 當指令行有輸入參數時,作業系統會将指令行參數一一儲存到argv(指令行參數數組)中,且同步增大argc(指令行參數個數)的值。

end 

歡迎關注個人公衆号“ 雞翅程式設計 ”,這裡是認真且乖巧的碼農一枚。

---- 做最乖巧的部落格er,做最紮實的程式員 ----

旨在用心寫好每一篇文章,平常會把筆記彙總成推送更新~

main()函數 與 指令行參數end 

繼續閱讀