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

C語言 main 函數參數 argc 與 argv 深度解析

     編輯:關於C語言

C語言 main 函數參數 argc 與 argv 深度解析

許多初學者習慣寫 int main(),實則標準 main 函數原型為 int main(int argc, char *argv[])。這兩個參數讓程序能接收命令行參數,是系統編程、工具開發的基礎。

參數含義詳解

  • argc (argument count):傳遞給程序的參數個數,包含程序名本身
  • argv (argument vector):字符串指針數組,每個元素指向一個參數字符串

實例演示

在終端執行:./myprog -g -o parm aa.c bb.h 12345

  • argc = 7
  • argv[0] = "./myprog" (程序名)
  • argv[1] = "-g"
  • argv[2] = "-o"
  • argv[3] = "parm"
  • argv[4] = "aa.c"
  • argv[5] = "bb.h"
  • argv[6] = "12345"

遍歷參數的標準代碼

#include <stdio.h>
#include <string.h>

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

實際應用場景

  1. 配置文件指定:./server -c config.ini
  2. 輸入輸出文件:./convert input.txt output.bin
  3. 功能開關控制:./tool --verbose --debug
  4. 批量處理腳本:配合 Shell 腳本自動化構建

注意事項

  • argv[argc] 保證為 NULL,可作為結束標記
  • 參數字符串不可修改(指向只讀內存)
  • Windows 下參數解析規則與 Linux 略有不同(引號處理)
  • 長參數建議使用 getopt() 或 argp 庫解析
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved