“C中的参数”的定义是什么

“C中的参数”的定义是什么,c,startup,argv,cs50,argc,C,Startup,Argv,Cs50,Argc,我在阅读一行代码和理解这行代码上下文中的参数时遇到了一些问题。这保存在名为argv0.c的文件中 之后,系统会提示我输入。问题就在这里: 如果我在终端中输入Dion Lim,Dion Lim是否被视为参数?如果是,是否有两个论点 为什么如果我在终端输入Dion Lim,我会得到Hello,World,但是如果我输入Dion,我会得到Hello,Dion 是的,这是两个论点 q2,因为ARCC考虑可执行文件的名称,这是第一个参数。因此: ./argv0 Dion Lim // argc == 3

我在阅读一行代码和理解这行代码上下文中的参数时遇到了一些问题。这保存在名为argv0.c的文件中

之后,系统会提示我输入。问题就在这里:

如果我在终端中输入Dion Lim,Dion Lim是否被视为参数?如果是,是否有两个论点

为什么如果我在终端输入Dion Lim,我会得到Hello,World,但是如果我输入Dion,我会得到Hello,Dion


是的,这是两个论点

q2,因为ARCC考虑可执行文件的名称,这是第一个参数。因此:

./argv0 Dion Lim // argc == 3
./argv0 Diom     // argc == 2
./argv0          // argc == 1
你可以得到更多的细节

如果我在终端中输入Dion Lim,Dion Lim是否被视为 论点如果是,是否有两个论点

当然,这取决于shell如何处理它,但通常Dion Lim是一个参数,而没有引号的Dion Lim是两个参数。空格分隔了参数,如果您想在输入中留有空格,您可以使用引号来解决这个问题,有时您还可以转义空格,如Dion\Lim

为什么如果我在终端输入Dion Lim,我会得到Hello, 世界,但如果我输入Dion我会得到Hello,Dion


argc参数告诉您有多少个参数,我认为它代表参数计数。程序名也算作参数,因此如果只传递Dion,则argc已经是2。如果通过Dion Lim,则参数数将为3。

要查看参数数,请检查argc arguments count的值。始终至少有一个输入参数,即程序名

因此,对于./argv0 Dion Lim,有三个输入参数


如果您想知道make使用Makefile编译程序,那么如果查看运行make的目录,您会发现一个名为Makefile的文件,其中包含编译说明。

根据C标准5.1.2.2.1程序启动

-如果argc的值大于零,则指向 by argv[0]表示程序名;argv[0][0]应为空 如果主机无法提供程序名,则为字符 环境如果argc的值大于1,则字符串 由argv[1]通过argv[argc-1]指向表示程序 参数

因此,如果您手动提供参数Dion,那么argc将完全等于2。第一个程序参数将是程序名,因为它紧跟在引号之后,第二个程序参数将是单词Dion

如果您要键入Dion Lim,则主机系统将其视为两个程序参数,并且与程序名argc一起等于3

但是,如果你把输入Dion Lim括在像Dion Lim那样的括号中,那么系统会考虑输入为一个参数,程序将输出

hello Dion Lim

因为如果您键入./argv0 Dion Lim,这是两个参数,所以argc是3。尝试使用./argv0'Dion Lim',使其成为一个单独的参数。谢谢jon。如果可以的话,争论的定义是什么?嘿,布莱泽,如果我能问你一个后续问题。在arg c之前加一个int的目的是什么,即int-arg c?@LimDion你真的应该为这类问题复习一下基础教程;int是main函数名为argc的参数的类型。
./argv0 Dion Lim // argc == 3
./argv0 Diom     // argc == 2
./argv0          // argc == 1
hello Dion Lim