每一c 程式都必須有一main()函式, 可以根據自己的愛好把它放在程式的某
個地方。有些程式設計師把它放在最前面, 而另一些程式設計師把它放在最後面, 無論放
在哪個地方, 以下幾點說明都是適合的。
1. main() 引數
在turbo c2.0啟動過程中, 傳遞main()函式三個引數: argc, argv和env。
* argc: 整數, 為傳給main()的命令列引數個數。
* argv: 字串陣列。
在dos 3.x 版本中, argv[0] 為程式執行的全路徑名; 對dos 3.0
以下的版本, argv[0]為空串("") 。
argv[1] 為在dos命令列中執行程式名後的第乙個字串;
argv[2] 為執行程式名後的第二個字串;
...argv[argc]為null。
*env: 安符串陣列。env 的每乙個元素都包含envvar=value形式的字元
串。其中envvar為環境變數如path或87。value 為envvar的對應值如c:\dos, c:
\turboc(對於path) 或yes(對於87)。
turbo c2.0啟動時總是把這三個引數傳遞給main()函式, 可以在使用者程式中
說明(或不說明)它們, 如果說明了部分(或全部)引數, 它們就成為main()子程式
的區域性變數。
請注意: 一旦想說明這些引數, 則必須按argc, argv, env 的順序, 如以下
的例子:
main()
main(int argc)
main(int argc, char *argv)
main(int argc, char *argv, char *env)
其中第二種情況是合法的, 但不常見, 因為在程式中很少有只用argc, 而不
用argv的情況。
以下提供一樣例程式example.exe, 演示如何在main()函式中使用三個引數:
/*program name example.exe*/
#include
#include
main(int argc, char *argv, char *env)
執行example.exe:
c:\example first_argument "argument with blanks" 3 4 "last but
one" stop!
注意: 可以用雙引號括起內含空格的引數, 如本例中的: " argument
with blanks"和"last but one")。
結果是這樣的:
the value of argc is 7
these are the 7 command-linearguments passed to main:
argv[0]:c:\turbo\example.exe
argv[1]:first_argument
argv[2]:argument with blanks
argv[3]:3
argv[4]:4
argv[5]:last but one
argv[6]:stop!
argv[7]:(null)
the environment string(s) on this system are:
env[0]: comspec=c:\command.com
env[1]: prompt=$p$g /*視具體設定而定*/
env[2]: path=c:\dos;c:\tc /*視具體設定而定*/
env 獲得的資訊等同於linux下env命令的結果
其實這幾個引數在 linux上用得比較廣泛,比如說像-m -s等等的引數,利用這幾個引數可以直觀的看出來。然後最後乙個*env好像是c裡面所特有的,是用來顯示指向各種path值的指標。
main函式的三個引數
我們平時寫程式時main函式是省略引數的,或者是省略部分引數,其實main函式是有三個引數的。int main int argc,char ar const char envp argc int 型別,用於存放命令列引數的個數 包括函式名 ar char陣列型,每個元素都是乙個字元指標,指向乙個字串...
main函式中的三個引數(有趣C系列)
概念 三個引數的作用 argc 命令列中的引數個數 ar 指標陣列,儲存命令列中的具體引數。ar 0 當前可執行檔案絕對路徑 ar 1 第乙個引數 ar 2 類推.env 指標陣列,環境變數。env end null 實操 實現加法 include using namespace std int m...
C語言main函式三個引數的含義 用法
不帶引數的main函式 include intmain void 帶引數的main函式 include intmain int argc,char ar char envp main是函式,可以帶引數。但平時很少用到。三個引數的英文全稱 argc args count ar args value e...