學點 C 語言(41): 函數 – 關於 main 函數

來源:互聯網
上載者:User
main 函數是 C 程式的進入點, 不可或缺, 不可重複;

main 函數應返回一個整數值給作業系統, 返回 0 表示正常結束.

前面使用的 main 函數都是無參數的: int main(void);

main 可以有兩個參數: int main(int argc, char *argv[]);
第一個是自動擷取的參數數目(+1), 第二個是參數列表(字串列表);
這一般用於控制台或 dos 下,
在 Windows 下我們雙擊檔案名稱開啟檔案時, 該檔案名稱(包括路徑)也是通過這些參數傳遞的.

1. 擷取 main 函數第一個參數的預設值:
它會是 1; 我們並沒有給它參數呀? 原來它是把檔案名稱當作第一個參數的.
#include <stdio.h>int main(int argc, char* argv[]){    printf("%d\n", argc); /* 1 */    getchar();    return 0;}

2. 擷取第一個參數(也就是檔案名稱):

#include <stdio.h>int main(int argc, char* argv[]){    printf("%s\n", argv[0]);    getchar();    return 0;}

3. 給 main 函數建立並擷取參數列表:

如果是在控制台或 dos 下, 在程式名後面輸入就是了, 現在呢?
C++Builder 菜單 -> Run -> Parameters... -> 在 Parameters 輸入測試參數(譬如: 11 22 33), 用空格隔開.
此對話方塊也可從 Project -> Project Options -> Debuger 進入.
#include <stdio.h>int main(int argc, char* argv[]){    int i;    for (i = 1; i 

4. 假如需要其他類型的參數:

main 的參數都是字串的(或者說是字元指標的), 要使用其他類型的參數, 譬如 int、double 等, 只能轉換.
#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]){    int I;    long L;    double D;        I = atoi(argv[1]);  /* 假定至少指定了一個參數 */    L = atol(argv[1]);    D = atof(argv[1]);    printf("%d, %ld, %g\n", I, L, D);        getchar();    return 0;}

5. C++Builder 2009 中的 main 函數:

//標準的 main 函數:int main(int argc, char* argv[]){    return 0;}//C++Builder 2009 中的 main 函數:int _tmain(int argc, _TCHAR* argv[]){    return 0;}/*_tmain 是個 define, 在 tchar.h 中這樣定義: #define _tmain main程式在預先處理階段將會把它替換為: main_TCHAR 是重新命名的 char 類型, 在 tchar.h 中這樣定義: typedef char _TCHAR;看來要想按照 C++Builder 2009 給的預設代碼使用, 是離不開 tchar.h 的.C++Builder 2009 為什麼要這樣? 肯定有理由, 可我不知道.*/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.