如果我们通过命令行向它传递以下参数,则以下程序的输出是什么:
bcd abcd ab abc
因此,由于我们传递了 4 个参数,argc
是 4 吗?我们将 i 初始化为 2,然后检查argv
从 1 到 3 的 ' - 我的猜测是我们添加 i = 2,然后在下一次迭代中 i = 3,这是 5,所以输出将是 5?
void main(int argc, char* argv[])
{
char *p, *q;
int i = 2, j = 0, k = 0;
for (; i < argc; i++)
{
p = argv[i-1];
q = argv[i];
for (j = 0; *q && *p; j++, p++, q++)
{
if (*p != *q)
{
break;
}
}
if (!*p || !*q)
{
k += i;
}
}
printf("%d",k);
}