Выходной сигнал программы ниже 6
. Я не могу понять, почему. Когда я прослеживаю его вручную, я получаю 5
.Указатели: почему выход равен 6?
#include<stdio.h>
#include<conio.h>
main()
{
int i,count=0;
char *p1="abcdefghij";
char *p2="alcmenfoip";
for(i=0;i<=strlen(p1);i++) {
if(*p1++ == *p2++)
count+=5;
else
count-=3;
}
printf("count=%d",count);
}
не должен быть выход в любом случае 2? или 7? требования к тому, что вы ожидали? Я не понимаю, как вы ожидаете? – dhein
@Zaibis './a.out count = 6' –
move strlen (p1) before for. на каждой итерации strlen возвращает число меньше на единицу - потому что оно возвращает число символов из char, на котором p1 указывает на \ 0. ваш за будет выполняться всего 5 раз. –