С указателями можно выполнять следующие арифметически операции:
ü сложение с константой;
ü вычитание указателей (только одного типа);
ü инкремента и дикремента.
При этом автоматически учитывается размер адресуемых величин.
Адресная арифметика используется в основном при работе с адресными структурами, последовательно расположенными в памяти.
Операция инкремента (дикремента) увеличивает (уменьшает) указатель на величину sizeof (тип указателя). При сложении с константой указатель изменяется на величину, равную const * sizeof (тип указателя).
double *p = 1000;
p++; //ó p = p + sizeof (double) = p + 8 = 1008;
p+=10; //ó p = p + 10 * sizeof (double) = 1088;
Разность двух указателей равна разности их значений, делённой на размер их в байтах, т.е. количество элементов данного типа между ними. Разность двух указателей – это НЕ указатель, а целое число.
Сложение указателей не допускается.