Я пытаюсь использовать char *
для хранения строки, и поскольку указатель указывает на ячейку памяти первого char
данной строки, я попытался использовать арифметику указателя (ptr++
) для перехода к следующему символу (поскольку они сохраняются последовательно). Однако в моем примере программы размер "строки" равен 22, но когда я пытаюсь запустить цикл for, как показано ниже, он выполняется только 12 раз. Есть идеи, почему? Я пропустил что-то важное о том, как работает арифметика указателя?
#include <stdio.h>
int main(void) {
char *strVar = "testfordifferentlength";
int i,timesCalled=0;
printf("\nLength = %d\n\n",strlen(strVar));
for(i=0;i <= strlen(strVar);i++){
printf("%c",*strVar);
strVar++;
timesCalled++;
}
printf("\n\nFor loop run %d times!\n",timesCalled);
return 0;
}
printf("%c"
на нулевом терминаторе. - person M.M   schedule 07.11.2018