我的代码非常简单。
#include <stdio.h>
int main(int argc, char **argv)
{
printf("%d\n", argc);
return 0;
}
它打印的是 17
在我输入
./a.out 1 2 3 + *
是不是应该打印 6
而不是?程序的行为与预期的一样,如果我将 ''
在每个参数周围,除了 ./a.out
. 这很奇怪,因为我可以在不使用引号的情况下使用一些带有标志的程序()''
, ""
).
如果你不引用或转义 *
,它被shell在形成程序参数时作为通配符展开。它被当前目录中的所有名字所取代(除了那些以 .
).
当你运行这个程序时,你的目录中必须有12个文件和子目录。