理解主要参数时的困惑

时间:2016-06-11 03:41:54

标签: c parameters main

同时理解main函数的参数,即int argc, char* argv[]

我写了一段代码来理解这些参数。

#include <stdio.h>
int main(int argc,char*argv[])
{
    printf("test\n");
    printf("%d %c",argc,*argv[argc-1]);
    return 0;
}

打印

  

测试

     

1 F

这里我不明白为什么有F作为输出。我的意思是如何执行此操作以使输出为F?

我在herehere上阅读了这些参数和主要功能。但我仍然不明白这些是如何运作的。

请解释。

编辑:如评论中所述,如果我将代码更改为

printf("%d %s",argc,argv[argc-1]);

现在我获取文件F:\ file path

的整个路径

这是否意味着argv[0]是驱动器中文件的位置?

2 个答案:

答案 0 :(得分:1)

它没有在C标准中定义,但在Unix上,argv [0]是可执行文件的名称。那么argv [1]是第一个论点,等等。我认为大多数时候,这也适用于微软的Dos和他们的Windowing操作系统。

答案 1 :(得分:0)

简单来说: 当您向命令行提供运行程序的指令时,您可以附加一些文本,可以在程序中访问。

#include <stdio.h>
int main(int argc,char*argv[])
{
    printf("This is the path or name of your programm: ");
    printf("%s\n", argv[0]);

    if(argc > 1) {
        printf("This is the first argument you gave your programm: ");
        printf("%s\n", argv[1]);
    }

    if(argc > 2) {
        printf("This is the second argument you gave your programm: ");
        printf("%s\n", argv[2]);
    }
    return 0;
}

尝试使用以下命令运行此示例:

<path_to_the_programm> Hallo Welt

您将看到argc是一个整数,它告诉您给程序提供了多少参数。我希望它对你有帮助。