当“*”作为调用 c 程序的参数之一传递时,argc 的值存在异常。我在c中做了一个简单的代码并将其保存为'test2.c'。这是'test2.c'的以下代码---
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char* argv[])
{
printf("%d\n",argc);return 0;
}
我编译它并称之为——
dev@ubuntu:~$ gcc test2.c -o t
dev@ubuntu:~$ ./t *
31
所以,我得到的参数计数值为 31;而如果 '*' 被任何其他二元运算符替换;argc 的值为 2(这在逻辑上也是正确的)。
dev@ubuntu:~$ ./t +
2
我无法理解为什么会这样......还有一件更有趣的事情。当使用'-'代替' '时;答案是2(这在逻辑上也是正确的)
dev@ubuntu:~$ ./t -*
2
任何人都可以帮助我吗?在此先感谢。