打印命令行参数

收到参数后,你可以按如下方式打印它们:

int main(int argc, char **argv)
{
    for (int i = 1; i < argc; i++)
    {
        printf("Argument %d: [%s]\n", i, argv[i]); 
    }
}

笔记

  1. argv 参数也可以定义为 char *argv[]
  2. argv[0] 可能包含程序名称本身(取决于程序的执行方式)。第一个真实命令行参数位于 argv[1],这就是循环变量 i 初始化为 1 的原因。
  3. 在 print 语句中,你可以使用*(argv + i) 而不是 argv[i] - 它评估为相同的东西,但更详细。
  4. 参数值周围的方括号有助于识别开始和结束。如果参数中有尾随空格,换行符,回车符或其他古怪字符,这可能非常有用。该程序的一些变体是用于调试 shell 脚本的有用工具,你需要了解其中实际包含的参数列表(尽管有简单的 shell 替代方法几乎相同)。