我在阅读一行代码时遇到了一些麻烦,并且在这段代码的上下文中理解了构成参数的内容。这保存在名为argv0.c的文件中

#include <cs50.h>
#include <stdio.h>

int main(int argc, string argv[])
{
    if (argc == 2)
    {
        printf("hello, %s\n", argv[1]);
    }
    else
    {
        printf("hello, world\n");
    }
}


我将代码编译如下:

make argv0
./argv0


接下来,提示我输入。问题出在这里:


如果我在终端中输入“ Dion Lim”,Dion Lim是否被视为自变量?如果是这样,是否有两个论点?
为什么在终端中输入“ Dion Lim”会得到“ Hello,World”,但是如果我输入“ Dion”会得到“ Hello,Dion”

最佳答案

Q1)是的,这是两个论点。

Q2)因为argc考虑可执行文件的名称,所以它是第一个参数。所以:

./argv0 Dion Lim // argc == 3
./argv0 Diom     // argc == 2
./argv0          // argc == 1


您可以获取更多详细信息here

关于c - “C中的参数”的定义是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57108313/

10-10 23:53