首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C語言main函數參數argc/argv詳解:命令行參數傳遞全攻略

     編輯:程式設計綜合問答

main函數標準簽名

int main(int argc, char *argv[])
// 或等價形式
int main(int argc, char **argv)

C標準允許main無參數或兩個參數(部分實現允許更多,如envp)。

參數含義

參數名稱含義
argcArgument Count命令行字符串總數(含程序名)
argvArgument Vector指向字符串的指針數組,argv[0]通常為程序名/路徑

系統以空格分隔命令行參數,雙引號可將含空格字符串作為單個參數。

經典示例

編譯運行

gcc c.c -o c
./c I love you

輸出

The command line has 3 arguments:
1: I
2: love
3: you

對應關係

argv[0] -> "c"       (程序名)
argv[1] -> "I"
argv[2] -> "love"
argv[3] -> "you"
argc = 4

帶空格參數技巧

./c "I love you." "I'm too."
The command line has 2 arguments:
1: I love you.
2: I'm too.

注意:所有參數均為字符串形式,數字參數需用atoi/strtol轉換,打印用%s而非%d。

實戰應用:文件操作

// d.c
#include <stdio.h>
int main(int argc, char *argv[]) {
    FILE *fp = fopen(argv[1], "w");
    fputs("I love you.", fp);
    fclose(fp);
    return 0;
}
./d love.txt
# 當前目錄生成love.txt,內容為"I love you."

總結

  • argc自動統計參數個數,無需手動計算。
  • argv提供靈活的字符串數組訪問。
  • 掌握引號轉義、路徑處理,是編寫健壯命令行工具的基礎。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved