列印命令列引數
收到引數後,你可以按如下方式列印它們:
int main(int argc, char **argv)
{
for (int i = 1; i < argc; i++)
{
printf("Argument %d: [%s]\n", i, argv[i]);
}
}
筆記
argv
引數也可以定義為char *argv[]
。argv[0]
可能包含程式名稱本身(取決於程式的執行方式)。第一個真實命令列引數位於argv[1]
,這就是迴圈變數i
初始化為 1 的原因。- 在 print 語句中,你可以使用
*(argv + i)
而不是argv[i]
- 它評估為相同的東西,但更詳細。 - 引數值周圍的方括號有助於識別開始和結束。如果引數中有尾隨空格,換行符,回車符或其他古怪字元,這可能非常有用。該程式的一些變體是用於除錯 shell 指令碼的有用工具,你需要了解其中實際包含的引數列表(儘管有簡單的 shell 替代方法幾乎相同)。