怎麼理解int main int argc,charargv

2021-09-03 07:06:15 字數 3706 閱讀 4353

1樓:匿名使用者

1、argv是argc個引數,其中第0個引數是程式的全名,以後的引數 命令列後面跟的使用者輸入的引數,比如:

int   main(int   argc,   char*   argv)

2、 執行時敲入

f:\mydocu~1\tempcode\d1\debug\d1.exe   aaaa   bbb   ccc   ddd

輸出如下:

f:\mydocu~1\tempcode\d1\debug\d1.exe

aaaa

bbbccc

ddd3、char   *argv是一個字元陣列,其大小是int   argc,主要用於命令列引數   argv   引數,陣列裡每個元素代表一個引數;比如你輸入  :

test

a.c   b.c   t.c

則argc   =   4

argv[0]   =   "test"

argv[1]   =   "a.c"

argv[2]   =   "b.c"

argv[3]   =   "t.c"

4、argc記錄了使用者在執行程式的命令列中輸入的引數的個數。

arg指向的陣列中至少有一個字元指標,即arg[0].他通常指向程式中的可執行檔案的檔名。在有些版本的編譯器中還包括程式檔案所在的路徑。

5、在呼叫一個可執行程式時,某些情況下需要向程式傳遞引數。如我們可以在控制檯中鍵入notepad.exe,

回車後將執行記事本程式。如果我們希望在開啟notepad時同時開啟一個文字檔案,可以在notepad.exe

後面跟上檔案的路徑和名字,如notepad.exe   example.txt(檔案在當前路徑)。

擴充套件資料

main函式的引數列表儲存了輸入引數的資訊,第一個引數argc記錄了輸入引數的個數,  第二個引數是字串陣列的,字串陣列的每個單元是char*型別的,指向一個c風格字串。

以notepad.exe   example.txt為例  argc是2,就是說argv陣列中有兩個有效單元

第一單元指向的字串是"notepad.exe"  ; 第二單元指向的字串是"example.txt"

argv陣列中的第一個單元指向的字串總是可執行程式的名字,以後的單元指向的字串依次是程式呼叫時的引數。

這個賦值過程是編譯器完成的,我們只需要讀出資料就可以了。

參考資料

2樓:

唉要喂!!

1,首先矯正一下:int main(int argc, char **argv)是正確的方式。而int main(int argc, char *argv)你從**看來的??

那是不正確的,或者是書上筆誤,不要被它愚弄了。

2,你首先要弄明白一個問題, "hello world" 這個字元 常量 的返回值是什麼!!

一個字串常量的返回值是char*, 反之你也可以用char*去存取字串。

3, 現在char **argv 就好理解了,它就是一個指向字串的指標。 當你在終端打入 leds led_no 0 時,argv[0]就是leds,argv[1]就是led_no, argv[2]就是 0; 如果你熟悉陣列與指標的關係,那麼這裡的argv[n]也容易理解, 他們都是字串!

這一句:sscanf不同於scanf的地方是 sscanf從一個字串中得到輸入, 而scanf是你從終端輸入。

這句就是,如果argv [1]這個字串中含數字,那麼就把它讀入led_on. 並返回1,否則返回0

請問main(int argc, char *argv[])怎麼用?

3樓:育知同創教育

argc表示 檔案執行時 以空格為間隔的所有引數個數,argv陣列中依次存放所有字串

比如:借用上樓的程式來講講,希望不介意,該程式儲存編譯後名叫做 test.exe

在dos環境中執行是輸入如下

test one two three《回車》

argc=3,從0-3,argv[0]=test, argv[1]=one, argv[2]=two,argv[3]=three

這個東東是從dos時代傳下來的,程式後面跟引數,一般是該程式需要引數或需要操作目標時才會用到

c語言 主函式裡的東西是什麼意思 int main(int argc, char* argv[]){}

4樓:柯墨

每一c 程式都必須有一main()函式,可以根據自己的愛好把它放在程式的某個地方。有些程式設計師把它放在最前面,而另一些程式設計師把它放在最後面,無論放在哪個地方,以下幾點說明都是適合的。

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)。

turboc2.0啟動時總是把這三個引數傳遞給main()函式,可以在使用者程式中說明(或不說明)它們,如果說明了部分(或全部)引數,它們就成為main()子程式的區域性變數。 請注意:

一旦想說明這些引數,則必須按argc,argv, env的順序,如以下的例子:

main()

main(int argc)

main(int argc, char *argv)

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

其中第二種情況也是合法的,但不常見,因為在程式中很少有隻用argc,而不用argv的情況。

我是直接學c++起步的,一般的控制檯程式就是main()因為除了需要重定向輸入輸出的情況下,一般是不用那些引數的。c語言不熟

5樓:匿名使用者

這個在原來dos的環境下使用tc2.0編譯的時候還有點作用 現在不是很明顯了

例如編譯一個abc.c程式生成 abc.exe 在dos下執行可以加執行引數 比如 abc.

exe ok good nice (後三個為可選的執行引數 並非這幾個單詞僅做示例) 那麼argv字串就儲存這四個引數(包括abc.exe) argc為各引數的下標 可以用來訪問某個引數 ,例如argv[0] 就為abc.exe ,argv[1]就為ok.

依次類推

沒有麼 也是可以的

6樓:青雲

意思就是執行該程式時可以輸入一些引數,而引數就傳值給它們。

沒有當然可以。

7樓:

返回引數, 第一個 長整形的引數 第二個字元型的 陣列

愛情怎麼理解,怎麼理解愛情?

愛情就是兩個人在一起生活,互相取悅對方,能在自己最困難的時候幫助你,在你困惑的時候,信任你,在你迷茫的時候,陪伴你。pwd 1234 提取碼 1234 在同一家銀行工作的四名男女陷入了錯綜複雜的戀愛關係中,因為他們發現為了愛,一切都是值得的。1 愛情,是兩個素不相識的人,忽然遇見,回眸一瞬,入了心,...

怎麼理解這句話,請問怎麼理解這句話

哪句話,話呢 怎麼沒有主幹 n and friendship,find a preci 請問怎麼理解這句話?意思是屠呦呦不是第一個獲得諾貝爾科學獎項的華人科學家,早在1957年,楊振寧與李政道提出了宇稱不守恆理論,並共同獲得了諾貝爾物理學獎,他們是最早的華人諾貝爾獎得主,但除屠呦呦外,中國本土無人獲...

感情怎麼理解呢,情感是什麼,怎麼理解情感?

你越是怕失去女生,你就不敢跟她聊天,約會,這樣你真的就會失去女生。感情是複雜的 bai 個體的 不可替du代的。zhi 感情包括各種方面dao,愛情 親情 友情 鄉情等內。你容說的感情並沒有特別闡述,我先把它等同於愛情加以闡述。從社會經驗來看,人絕不是跟誰在一起了都會產生愛情。有的人結婚一輩子,卻從...