Я вижу ниже фрагмент кода всегда возвращает 1 вместо 4 Не в состоянии действительно понять, что это неправильноУказатель arthmetic путаница
#include <stdio.h>
int main(void) {
int a[4] = {1,2,3,4};
int *p = a;
p++;
printf("%ld\n",(long int)(p-a));
return 0;
}
Если вы назначаете a, который указывает на первый элемент указателю p, то приращение p указывает на 2, и если вы снова вычитаете a из него, вы вернетесь к 1?! – Rizier123
Что вы ожидали? * Р = а; р ++; p-a; .. –
почему вы ожидаете 4? – jev