main()函數 與 命令行參數

本文目錄

 

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文件開始,每個字符串之間都要有空格,輸入完成後按下回車。

 

看看程序運行的輸出結果:

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

  • 在默認情況下,argc(命令行參數個數)的值爲1,argv(命令行參數數組)就只有一個元素 —— 儲存着該代碼運行文件的絕對路徑
  • 當命令行有輸入參數時,操作系統會將命令行參數一一儲存到argv(命令行參數數組)中,且同步增大argc(命令行參數個數)的值。


end 

歡迎關注個人公衆號 雞翅編程 ”,這裏是認真且乖巧的碼農一枚。

---- 做最乖巧的博客er,做最紮實的程序員 ----

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

 

在這裏插入圖片描述

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章