帶引數的main函式

2021-05-25 01:50:42 字數 1177 閱讀 5455

在學習c語言的時候,我們知道除主函式外,函式是可以互相呼叫的,主函式可以呼叫其他函式,其他函式不能呼叫主函式,主函式是被系統呼叫的。函式呼叫時可以帶引數也可以不帶引數,這完全取決於該函式是有參函式還是無參函式。主函式可不可以帶引數呢?回答是肯定的,這種引數是在程式運算時給出的所以又叫命令列引數。下面我們就來討論帶引數的主函式。

main函式的原型為:

【返回型別】main(int argc,char *argc[ ])

返回型別:返回值提供給執行該程式的作業系統,如果返回值為void,表示不需要返回值,如果預設返回值型別時表示返回值型別為整型。

主函式有兩個引數

argc:為整型資料,表示命令行中提供的實參個數(包括命令本身)。

argv:為指標陣列變數,該陣列的大小由命令列引數的個數決定,該陣列是指向命令列字串的指標陣列。

特別要注意的是:argv[0]指向程式(命令)名;

argv[1]指向命令列第乙個引數;

……  

argv[argc-1]指向命令列最後乙個引數。

程式運算格式:

程式名     引數1 引數2 引數3 .......... 引數n

注意:各引數用空格隔開,如果引數內部包含空格,應該用「 」將引數括起來

例如:>:text  changjiang huanghe 或》:text "chang jiang" "huang he"

說明:上述格式也是乙個命令列,此時系統會自動在記憶體開闢區域依次存放程式名和所有的實際引數,同時給主函式的形式引數賦值,結果如下:

形參argc 賦值為n+1,表示連同程式名在內共有n+1個引數。

形參argv[0]賦值為存放「程式名」字串的首位址;

argv[1]賦值為存放「實際引數1」字串的首位址;..

.argv[n]賦值為存放「實際引數n」字串的首位址。

例程1:顯示命令列引數的數量和每個命令列引數

例程2:編乙個程式,完成磁碟檔案複製。源檔名和目標檔名隨程式執行時輸入。例如,複製a盤根目錄下的檔案ccw1.txt為a盤根目錄下的ccw2.txt,則執行程式時輸入的命令列如下:程式名 a:/ccw1.txt a:/ccw2.txt↙。

帶引數的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函式是這樣的 int main void 上面是個簡單的求和函式,簡單易懂,但有個缺點,程式執行時需要和使用者互動 一次次詢問輸入資料 操作起來不便捷。能不能像shell命令列那樣在呼叫函式時一次把引數都輸進去呢?答案是有的 main函式可以帶兩個引數int arg...

帶引數的main函式

我們剛開始寫 c語言 的時候用的都是無引數的main函式,如 include int main 但是後來碰到了帶引數的main函式 此函式是cmu的 include include include define bufsize 256 int main int argc,char ar else r...