c - 为什么argv的第一个参数是1而不是0

标签 c ansi-c

我有一些参数可以让程序正常工作。该参数应该是 MAX_NUM, x, y。

当捕获 char 输入列表的参数时,我当前使用参数 1 而不是 0 获取 MAX_NUM。

例如:

int main (int argc, char *argv[]) {
    int MAX_NUM = atoi(argv[0]);
    int x = atoi(argv[1]);
    int t = atoi(argv[2]);
    printf("MAX_NUM %d\n", atoi(argv[0]));
....

打印argv[1],当打印第一个参数为0时,我正确地得到了MAX_NUM。

为什么 C 将 char 输入列表数组初始化为 1 而不是 0 或程序名称?

最佳答案

简单来说,argv[0]的值就是要执行的程序的名称。 C有点为此目的保留了argv[0]索引。要深入了解 C 和操作系统如何开始相互协作的一些细节 - 请查看 Stack Overflow 中的这篇文章。 。

关于c - 为什么argv的第一个参数是1而不是0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929025/

相关文章:

compilation - 包括自定义头文件(ANSI C)

c - 为什么 Xcode 允许我在任何地方声明 C 变量?

使用格式说明符在 C 中创建一个字符串

c - 数据结构中灵活的可变长度

mysql - 执行sql语句

c - 通过无效指针获取结构成员时如何更改编译器行为

c - 在 C 中使用 strcmp() 函数

string - 在 bash 的字符串中“揭示”隐藏/控制 'codes'

c - 我正在写一个 fuse 文件系统。如何将额外的数据传递给fuse_operations?

无法识别 CURL apache 模块中的自定义 header