【发布时间】:2012-03-06 02:06:54
【问题描述】:
这是一个简单的 C 程序,它打印传递给它的命令行参数的数量:
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("%d\n", argc);
}
当我给出输入时
file_name *
它在我的电脑(操作系统 Windows 7)中打印 623 而不是 2。但它在其他情况下给出了正确的输出。 * 是命令行参数的保留字符吗?
请注意,此程序为以下输入提供正确的输出:
file_name *Rafi
输出 = 2
【问题讨论】:
-
@pmg:我已经修改了问题,所以“file_name”是一个词而不是两个词……这可能是 Rafi 的意图。如果没有,他会重新编辑,我们可以再次对 2 vs 3 提出质疑。
-
Microsoft 的 C/C++ 编译器 (
cl.exe) 将在您的两个示例中打印 2。您使用的是不同的编译器吗? -
是的.. 你是对的 :) @Jonathan