日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

main函数解析

發(fā)布時(shí)間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 main函数解析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文鏈接:http://parisliu2008.blog.163.com/blog/static/95070867200951510412959/

main參數(shù)??

2009-06-15 10:41:29|

每一C 程序都必須有一個(gè)main()函數(shù),作為整個(gè)程序的入口,可以根據(jù)自己的愛好把它放在程序的任何地方。

在Turbo C2.0啟動(dòng)過程中,傳遞main()函數(shù)三個(gè)參數(shù):argc,argv和env。

* argc: 整數(shù),為傳給main()的命令行參數(shù)個(gè)數(shù)。(argument count)

* argv: 字符串?dāng)?shù)組。

在DOS 3.X 版本中,argv[0] 為程序運(yùn)行的全路徑名;

對(duì)DOS 3.0 以下的版本,argv[0]為空串("") 。

argv[1] 為在DOS 命令行中執(zhí)行程序名后的第一個(gè)字符串;

argv[2] 為執(zhí)行程序名后的第二個(gè)字符串;

...

argv[argc]為NULL。

* env: 字符串?dāng)?shù)組。env[] 的每一個(gè)元素都包含ENVVAR=value形式的字符串。其中ENVVAR為環(huán)境變量如PATH或87。value 為ENVVAR的對(duì)應(yīng)值如C:\DOS,C:\TURBOC(對(duì)于PATH) 或YES(對(duì)于87)。

TurboC2.0啟動(dòng)時(shí)總是把這三個(gè)參數(shù)傳遞給main()函數(shù),可以在用戶程序中說明(或不說明)它們,如果說明了部分(或全部)參數(shù),它們就成為main()子程序的局部變量。

注意:一旦想說明這些參數(shù),則必須按argc,argv, env的順序,如以下的例子:

main() main(int argc) main(int argc, char *argv[]) main(int argc, char *argv[], char *env[]) 其中第二種情況也是合法的,但不常見,因?yàn)樵诔绦蛑泻苌儆兄挥胊rgc,而不用argv[]的情況。以下提供一樣例程序EXAMPLE.EXE, 演示如何在main()函數(shù)中使用三個(gè)參數(shù): #include <stdio.h> #include <stdlib.h> main(int argc,char *argv[],char *env[]) { int i; printf("These are the %d command-line arguments passed to \main:\n\n", argc); for(i = 0; i <= argc; ++i) printf("argv[%d]:%s\n", i, argv[i]); printf("\nThe environment string(s)on this system are: \\n\n"); for(i = 0; env[i] != NULL; ++i) printf(" env[%d]:%s\n", i, env[i]); }

如果在DOS 提示符下,按以下方式運(yùn)行:

EXAMPLE.EXE: C:\example first_argument "argument with blanks" 3 4 "last butone" stop!

注意:可以用雙引號(hào)括起內(nèi)含空格的參數(shù),如本例中的:"argument with blanks"和"Last but one")。

傳送main() 函數(shù)的命令行參數(shù)的最大長度為128個(gè)字符 (包括參數(shù)間的空格),這是由DOS 限制的。

任何EXE文件 ,本身并沒有可執(zhí)行能力 ,必須由其他的程序(通常是操作系統(tǒng),但不是絕對(duì)的)裝入內(nèi)存 ,把EXE裝入內(nèi)存的程序也為該EXE提供了相應(yīng)的環(huán)境(ENVIRONMENT) ,在這個(gè)環(huán)境之中就包括了與主函數(shù) int? argc? ,? char*? argv[] ,相對(duì)應(yīng)的實(shí)參部分 。

附注:我在實(shí)際運(yùn)行中遇到的問題是:直接運(yùn)行了.cpp程序,但是發(fā)現(xiàn)沒有任何錯(cuò)誤,就是輸出結(jié)果異常,不是我們想要的運(yùn)行結(jié)果,可是又不知道問題在哪,于是上網(wǎng)查找有關(guān)于

main(int argc,char* argv),的相關(guān)問題,上述解釋就是相關(guān)問題的解決方法,但是,我的實(shí)際應(yīng)用感想是:首先運(yùn)行程序,生成Debug文件,找到相關(guān)的.exe路徑,然后,在程序運(yùn)行命令中輸入這個(gè).exe的路徑,及相關(guān)其他有效值,或有效路徑,這樣才能得到正確的,我們想要的結(jié)果。


總結(jié)

以上是生活随笔為你收集整理的main函数解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。