Вычитание двух указателей, как правило, дает значение, которое представляет количество элементов между двумя элементами в массиве.
Например, вот какой -то действительный код, который работает так же, как и ожидалось: < /p>
Код: Выделить всё
unsigned short *p_short = new unsigned short[100];
unsigned short *p_1 = &p_short[10];
unsigned short *p_2 = &p_short[20];
std::cout , если массивы являются массивами разных типов. Это создает ошибку типа.
[*] Это возможно, если указатели одинакового типа, но указывают на элементы разных массивов.
< /ul>
Однако в последнем случае является ли результатом вычитания значимым? < /p>
Возможный пример с выводом: это пример чего -то что, вероятно, вряд ли даст значимый результат. < /p>
auto p1 = new unsigned short[100];
auto p2 = new unsigned short[100];
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79423660/is-subtracting-two-pointers-to-the-same-type-meaningful-if-those-pointers-point[/url]