執行程式時可透過命令列傳遞參數給 C 程式,這些值稱為命令列參數,對於從外部控制程式行為(而非硬編碼)至關重要。
main() 函式可接收兩個參數:
argc(argument count):傳入參數個數,包含程式名稱本身。argv[](argument vector):字串指標陣列,argv[0] 為程式名稱,argv[1] 為第一個參數,以此類推。#include <stdio.h>
int main(int argc, char *argv[])
{
if (argc == 2)
{
printf("傳入參數:%s\n", argv[1]);
}
else if (argc > 2)
{
printf("參數過多。\n");
}
else
{
printf("預期一個參數。\n");
}
return 0;
}
$ ./a.out testing 傳入參數:testing $ ./a.out testing1 testing2 參數過多。 $ ./a.out 預期一個參數。
參數間以空白分隔;若參數本身含空白,需用雙引號或單引號括起:
$ ./a.out "testing1 testing2" 程式名稱:./a.out 傳入參數:testing1 testing2
範例程式碼同前,只需在 printf 中顯示 argv[0] 即可觀察程式名稱。
argc == 1(僅程式名)。argc == 2。argv[argc] 保證為 NULL。