количество элементов, ведь разные типы занимают разное количество памяти, например char 1 байт, в int 2 байта, ведь вычитание p-q, при p>q, если они int даст ответ 2 если они указывают на подряд идущие элементы массива а не 1?
В массиве не могут храниться разные типы данных
а ты не сможешь выполнять операции с разными типами указателя. от int* нельзя вычесть char*;
при вычитании указателей ты всегда получаешь размер в sizeof(T), где T размер элемента массива, то есть, неважно, int там или char в массиве, получишь разницу в количестве элементов между двумя указателями: int a[2] = {0, 1}; assert((&a[1]-&a[0])==1)
Обсуждают сегодня