首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言 main 函數參數 argc 與 argv 詳解

     編輯:關於C語言

C語言 main 函數參數 argc 與 argv 詳解

標準 C 允許 main 函數接受命令列參數,原型為:

int main(int argc, char *argv[]);  // 等價於 int main(int argc, char **argv);
  • argc(argument count):參數個數,包含程式名稱本身,故最小值為 1。
  • argv(argument vector):字串指標陣列,argv[0] 為程式名稱(如 ./a.out),實際參數從 argv[1] 開始。

基本用法示範

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("argc = %d\n", argc);
    for (int i = 0; i < argc; i++) {
        printf("argv[%d] = %s\n", i, argv[i]);
    }
    return 0;
}

編譯與執行

$ gcc main_args.c -o main_args
$ ./main_args hello world test
argc = 4
argv[0] = ./main_args
argv[1] = hello
argv[2] = world
argv[3] = test

關鍵注意事項

  1. 參數以空格分隔:./a.out "hello world" 視為兩個參數(argc=3),若需作為單一參數需加引號。
  2. 不可共存無參與有參 main:同一程式只能定義一個 main,否則編譯報錯「redefinition of main」。
  3. argv 實為指標陣列:char *argv[] 退化為 char **argv,每個元素指向以 \0 結尾的字串。
  4. 安全檢查:使用 argv 前必先驗證 argc,防止越界訪問。

實際應用場景

  • 配置檔路徑傳遞:./app -c config.ini
  • 模式選擇:./server --daemon
  • 批次處理輸入文件:./process file1.txt file2.txt

進階:解析選項

常配合 getopt()(POSIX)或 getopt_long() 解析短/長選項,支援 -a -b value --config=file 等複雜語法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved