【发布时间】:2012-03-11 16:09:46
【问题描述】:
正如问题所提到的,命令行参数如何在 C 中工作(通常是任何语言)。我能想到的合乎逻辑的解释是,操作系统在进程启动时为其设置了某种环境值。 但如果这是真的,我应该无法以 argp[i] 等方式访问它们(我修改了 main 以期望第二个参数为 char **argp 而不是 **argv)。请解释一下。
【问题讨论】:
-
为什么你认为你不应该能够以 argp[i] 的身份访问它们? (注意,函数参数名在编译的程序中通常没有意义,将 2. 参数命名为 main
argv只是一种约定,如果你愿意,可以将其命名为FOOBAR) -
main的参数与任何其他函数的参数一样。名称并不重要,您甚至可以在函数原型和实际函数中使用不同的参数名称,只要类型匹配即可。main的参数来自哪里并不重要,只需将它们视为任何整数和指针数组(或在您的情况下为指向指针的指针)。