Быстрый вопрос
Я пришел, чтобы побеспокоить вас всех другим, возможно, очень простым вопросом C.
Используя следующий код:
int get_len(char *string){
printf("len: %lu\n", strlen(string));
return 0;
}
int main(){
char *x = "test";
char y[4] = {'t','e','s','t'};
get_len(x); // len: 4
get_len(y); // len: 6
return 0;
}
2 вопроса Почему они разные и почему у 6? Спасибо, парни.
РЕДАКТИРОВАТЬ: Извините, я знаю, что бы это исправить, я просто хотел понять, что происходит. Так что strlen просто продолжает переадресовывать точку, пока она не найдет \ 0? Кроме того, когда я сделал strlen в основной функции, а не в функции get_len, оба были 4. Было ли это просто совпадением?