c - main() 的参数是为了什么?

标签 c arguments

每次我使用 Xcode 创建项目(标准命令行实用程序)时,我的 main 函数开始看起来像这样:

int main(int argc, const char * argv[])

括号里的是什么?为什么要使用这个而不仅仅是 int main()?

最佳答案

main 在启动程序时接收参数的数量和传递给它的参数,因此您可以访问它。

argc 包含参数的数量,argv 包含指向参数的指针。 argv[argc] 始终是 NULL 指针。参数通常包括程序名称本身。

通常,如果您像 ./myprogram 一样运行您的程序,

  • argc 为 1;
  • argv[0] 是字符串“./myprogram”
  • argv[1] 是一个 NULL 指针

如果你像 ./myprogram/tmp/somefile 这样运行你的程序

  • argc 为 2;
  • argv[0] 是字符串“./myprogram”
  • argv[1] 是字符串“/tmp/somefile”
  • argv[2] 是一个 NULL 指针

关于c - main() 的参数是为了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734111/

相关文章:

javascript - 有什么方法可以覆盖参数的 getter/setter 性质吗?

javascript - 函数作为参数没有在原型(prototype)中定义但仍然可以传入?

c - 结构数组作为参数和访问成员混淆

c - 段错误、解析、C

c++ - 在 C、C++ 中通过移位运算符(<<、>>)移位的位

bash - 查找:缺少 -exec 的参数

c++ - c: 传入变量的wordexp

c - 如何用随机数填充数组以使它们不同?

c - 制作驱动程序时禁用 KBUILD_CFLAGS 选项

c++ - 关于 c 中浮点运算的异常,关于从自身减去一个数