目錄
前言
什么是命令行參數
argc與argv
argc (Argument Count)
argv?(Argument Vector)
示例
前言
在C語言中,
main
函數的標準形式通常有兩種:int main(void)int main(int argc, char *argv[])
其中,
argc
?和?argv
?是用于處理命令行參數的兩個重要參數。本文將詳細解釋它們的含義和用法。
argc與argv
argc (Argument Count)
argc
?是一個整數,表示傳遞給程序的命令行參數的數量。它至少為1,因為第一個參數總是程序的名稱(即?
argv[0]
)。例如,如果用戶在命令行中輸入?
./my_program arg1 arg2
,那么?argc
?的值將是3。argv?(Argument Vector)
argv
?是一個指向字符指針的數組,每個指針指向一個字符串,表示一個命令行參數。
argv[0]
?是程序的名稱。
argv[1]
?到?argv[argc-1]
?是傳遞給程序的實際參數。
argv[argc]
?是一個空指針(NULL
),表示參數列表的結束。
什么是命令行參數
命令行參數?(Command-Line Arguments)是在啟動程序時通過命令行界面傳遞給程序的輸入參數,通常由程序名稱和參數列表組成,例如:
./my_program arg1 arg2 arg3
其中“./my_program”是程序名稱;“arg1 arg2 arg3”是參數列表。
參數列表打印示例
示例代碼
#include <stdio.h>int main(int argc, char *argv[]) {//打印參數個數printf("Number of arguments: %d\n", argc);//打印參數列表for (int i = 0; i < argc; i++) {printf("Argument %d: %s\n", i, argv[i]);}return 0; }
示例運行
./my_program arg1 arg2 arg3
示例輸出
Number of arguments: 4 Argument 0: ./my_program Argument 1: arg1 Argument 2: arg2 Argument 3: arg3
命令行參數作用何在?
有了命令行參數的存在,用戶就可以在運行程序時指定某些選項,從而使程序根據不同的輸入執行不同的操作。
我舉個好理解的例子:輸入參數1就是會員身份運行程序,里面會多很多功能,輸入參數2就是以會員身份運行程序,許多功能使用受限制。
利用命令行參數指定程序功能示例
#include <stdio.h> #include <string.h>int main(int argc, char *argv[]) {//輸入的參數不符合要求,提示輸入要求后直接退出運行if (argc != 2){printf("Usage:\n\t%s -number[1-2]\n", argv[0]);return 1;}//輸入參數1,執行第一種功能if (strcmp("-1", argv[1]) == 0){printf("function 1\n");}//輸入參數2,執行第二種功能else if (strcmp("-2", argv[1]) == 0){printf("function 1\n");}//輸入的參數不符合要求,提示輸入要求后直接退出運行else{printf("unknown!\n");printf("Usage:\n\t%s -number[1-2]\n", argv[0]);return 1;}return 0; }