c語言 主函式裡的東西是什麼意思 int main int

2021-09-03 07:07:22 字數 4914 閱讀 6624

1樓:柯墨

每一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語言不熟

2樓:匿名使用者

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

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

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

依次類推

沒有麼 也是可以的

3樓:青雲

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

沒有當然可以。

4樓:

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

c語言:int main(int argc,char *argv[])括號中的什麼意思,有什麼用?

5樓:vi六

標準的c是沒有這個引數的,這個應該是vc,引數的意思就是一段字串,第一個是字串的長度,第二個是字串在記憶體中的地址,這個字串是程式也就是程序在啟動的時候由父程序傳遞用來控制子程序用的,就比如你寫一個刪除檔案的程式名字叫deletefile,然後再編寫一個程式用system函式比如system("deletefile a.txt");這個函式的作用就是開啟deletefile在吧a.txt傳遞進去而deletefile在啟動的時候就可以憑藉這兩個引數獲得字串來明確要刪除哪個檔案

6樓:匿名使用者

int argc 命令列引數個數

char* argv 命令列引數

命令列引數可以在程式執行前在命令提示符中給出(就是程式在dos視窗中執行時,可以先給出引數)。

c語言 int main(int argc,const char*argv[])什麼意思?請翻譯

7樓:匿名使用者

帶引數的main,在unix,linux用的比較多。

比如:ls -lrt ls指令帶了-lrt引數回。

這樣,可以豐富指令按不答

同的方式執行。

第一個引數 int argc是main帶的引數個數,第二個引數const char *argv或者char **argv或者char argv是具體的引數。

8樓:go學龍

main (int argc,char *argv)這是main函式的參bai

數,du可寫可zhi不寫

可以在dos系統下執行,觀dao察

argc記錄了命內令容行中命令與引數的個數,char *argv【argc】可取命令及引數的字元

c語言中,int main(int argc, char *argv [])的2個引數是什麼意思?

9樓:匿名使用者

由於c語言對陣列沒有索引檢查,因此,對引數字串陣列,需要有陣列長度,因此有了argc作為字串陣列argv的長度(也就是元素個數)

argv是具體引數,不過需要注意的是,這裡的引數,不是真的只包括引數,而是包括這個exe的執行命令的本身。

比如在命令列輸入"c:\a.exe arg",那麼整個輸入的內容都是引數,引數陣列包括兩個元素,0號元素為"c:

\a.exe",1號元素為"arg",而argc的值是2,表示這個陣列有2個元素

以你的程式,程式的可執行檔案應是d:\1.exe,你在命令列輸入的內容是"1 2",因此argc的值是2,表示有2個字串,而argv[0]的值是"1",argv[1]的值是"2"。

經程式計算,argc<2為假,atoi("2")的值為2並賦值給times,2<1也為假,執行else分支,迴圈2次輸出你看到的字串

附:如果你想知道argc和argv到底是什麼,請在main函式中寫如下語句

int i=0;

printf("argc=%d\n",argc);

while(i

怎麼理解int main(int argc,char **argv)

10樓:匿名使用者

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陣列中的第一個單元指向的字串總是可執行程式的名字,以後的單元指向的字串依次是程式呼叫時的引數。

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

參考資料

11樓:

唉要喂!!

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

c語言函式前加上是什麼意思,C語言函式前加上是什麼意思

有的函式返回一個數值 0或1 在函式前加!也是取反的意思,即將返回值取其否定意義 如 int fun 在main函式中的條件語句中如 if fun 即將返回的0變為了1 總之就是否定的意思,函式isalpha會返回一個值,如果返回1表示真,那麼歎號一下就變成假了 如果返回0表示假,那麼歎號一下就變成...

c語言dp是什麼意思,c語言裡是什麼意思

1 先看 d p 這是一條複合賦值運算,相當於d d p 因此 d p 相當於 d d p 2 整個表示式的執行流程 因為是後自增運算子,所以 第1步 執行d d p 第2步 執行 p 假設,d 1,p 2,則執行後,d 1,p 3。相當於兩個語句 d d p p 是複合賦值運算子,是自增運算子 變...

C語言函式呼叫引數傳遞的是什麼,在C語言裡向函式傳遞的是「引數」是什麼意思

c語言傳遞的是值而不是地址,這一點從vb轉過來的程式設計師一定要注意。否則不經版 意間就會犯權錯誤。另外下層函式修改上層函式變數不是一種好習慣,容易引發錯誤。c語言中函式可以返回一個函式值,如果你需要返回多個函式值可以用下面的形式 fun int a,int b main 如果按vb的習慣,fun ...