打印命令行参数
收到参数后,你可以按如下方式打印它们:
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 替代方法几乎相同)。