Что происходит при добавлении числа к символьному массиву

Есть команда : strncmp(s.c_str(), sstr.c_str() + np - r - i, i)
Где:

std::string s, sstr; // И как-то их заполнили
int np, r, i; // И как-то их заполнили

Мне непонятно, что происходит при добавлении числа к буквенному массиву:

sstr.c_str() + np

Ответы (1 шт):

Автор решения: Alrott SlimRG

Спасибо @user7860670 и @ar-hovsepyan за помощь!

c_str() возвращает не "буквенный массив", а указатель на первый элемент этого массива, соответственно прибавление числа указателю задействует адресную арифметику и дает новый указатель, сдвинутый относительно исходного на указанное число


Вообше-то нет необходимости сравнивать С_массивы . Удобнее использовать std::string ::compare

→ Ссылка