【问题标题】:Why the first argument of argv is 1 not 0 [duplicate]为什么 argv 的第一个参数是 1 而不是 0 [重复]
【发布时间】:2020-01-15 15:33:55
【问题描述】:

我有一些参数让程序正常工作。这个参数应该是,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] 我正确地得到了 MAX_NUM,当打印第一个参数时得到 0。

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

【问题讨论】:

  • arg[0]是程序路径

标签: c ansi


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2021-02-26
    • 2011-08-14
    相关资源
    最近更新 更多