在學習c語言時,一般常見的main函式是這樣的
int main(void)
上面是個簡單的求和函式,簡單易懂,但有個缺點,程式執行時需要和使用者互動(一次次詢問輸入資料),操作起來不便捷。能不能像shell命令列那樣在呼叫函式時一次把引數都輸進去呢?答案是有的
main函式可以帶兩個引數int argc, char *argv (名字可隨意取,但型別必須一致,c語言規定)。因此原型如下 int main(int argc,char *argv[ ]).
其中:argc為引數個數(不需要使用者輸入,系統會根據後面輸入引數的個數自動填充)
argv 則用以儲存後續輸入的引數,只能是char型別。個人感覺和shell的命令列很像
我們都知道main函式是入口函式,不能被其它任何函式呼叫,那麼引數怎麼傳遞進去呢?這個和shell很像,假設我有個可執行的test檔案,在我執行它時,只要在後面空個格 依次輸入引數就好了~
就像這樣:test hello world !
這樣一共有四個引數:檔名「test」和「hello」」world」 「!」
相應的argc為4。不需要呼叫時輸入,系統會自動根據後面引數補上。
下面就測試下吧,**如下:(測試環境:ubuntu)
int main(int argc, char *argv)
檔案儲存為test_main.c。然後用gcc編譯下
gcc -o test_main test_main.c
這樣就生成了可執行的檔案 test_main 了,執行./test_main 程式便執行
這個我雖然沒有輸入任何引數,但程式卻獲得了乙個引數,argc = 1 argv[0] = 「./test_main」。這就是剛才說的,檔名就是它的第乙個引數。
然後執行./test_main hello world ! 試試
四個引數,分別是:「./test_main」「hello」 「world」「!」
這樣利用main的引數可以直接在呼叫命令時輸入相應的引數,不用來回輸入了 是不是很方便~
帶引數的main函式
void main int argc,char argv 程式中的argc 0代表什麼呢?while argc 0 printf s n argv 類while argc 0 main函式中所帶的兩個引數的含義這樣的 argc表示執行本命令 編繹連線產生的exe檔案 時所帶引數的個數,注意這裡包含e...
帶引數的main函式
在學習c語言的時候,我們知道除主函式外,函式是可以互相呼叫的,主函式可以呼叫其他函式,其他函式不能呼叫主函式,主函式是被系統呼叫的。函式呼叫時可以帶引數也可以不帶引數,這完全取決於該函式是有參函式還是無參函式。主函式可不可以帶引數呢?回答是肯定的,這種引數是在程式運算時給出的所以又叫命令列引數。下面...
帶引數的main函式
我們剛開始寫 c語言 的時候用的都是無引數的main函式,如 include int main 但是後來碰到了帶引數的main函式 此函式是cmu的 include include include define bufsize 256 int main int argc,char ar else r...