Какой выход из следующей программы, если мы перейдем к нему следующие параметры через командную строку:Объясните вывод этой программы?
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);
}
argc is 5, not 4 – SheetJS
'int main', а не' void main'. –