Передача ("текст" +1) аргумента функции Strlen в C. Почему вывод 3? - PullRequest
0 голосов
/ 21 июня 2019

У меня проблемы с пониманием, почему вывод этого аргумента в функцию strlen 3.

Я пытался изменить значения с 1 на 2,3. Я попытался изменить «текст» на «текст». Шаблон, который я заметил, таков: количество символов в строке - числовое значение

например, если я использую 2 вместо 1. Ответ 4 - 2 = 2

для +1 это дает 4 - 1 = 3.

Я запутался с этим. Пожалуйста, помогите мне понять. Спасибо

#include<stdio.h>
#include<string.h>

int main(void)
{
    char str[] = "Text";
    printf("%ld %ld \n", strlen(str+4), strlen("text"+1));
    return 0;
}

1 Ответ

6 голосов
/ 21 июня 2019

Синтаксис "string_literal" + N приведет к указателю N байтов от начала литерала. "test"+1 указывает на строку "est", которая имеет длину 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...