Почему мы можем использовать только четыре оператора (+
, -
, ++
, --
) в указателе арифметики? Имеет ли он какое-либо отношение к встроенному оборудованию, поскольку он имеет дело с адресами?Почему мы можем использовать только четыре оператора (+, -, ++, -) в арифметике указателя?
Поскольку массив использует относительную адресацию, в котором мы увеличиваем адрес для выполнения этой операции, я думаю, что это может быть одной из причин использования только этих 4 операторов.
Какие другие операторы вы считаете имеющими смысл? – John3136
@ John3136: честно говоря, что-то вроде 'ptr% 8' может быть действительно полезным. –
@KeithThompson: Если вы знаете, что работает, 'int * p; ... uintptr_t boff = ((uintptr_t) p% 8); '. 'p% 8' может не иметь особого смысла для всех архитектур для всех делителей (например, сегмент: офсетные носители, такие как x86-16bit). – Olaf