Pointer arithmetic
Në shqip: Aritmetika e pointer-ëve
ShpjegimiSQ
Kur i shton 1 një pointer-i, ai s'lëviz 1 bajt, por te elementi tjetër — për një int*, 4 bajtë më tej. Kështu p + 2 tregon elementin e tretë të vargut, dhe *(p + 2) është njësoj si p[2].
EnglishEN
When you add 1 to a pointer, it doesn't move 1 byte but to the next element — for an int*, 4 bytes on. So p + 2 points to the array's third element, and *(p + 2) is the same as p[2].
Si ta mendosh
Si numrat e shtëpive në rrugë: „dy shtëpi më tutje“ s'do të thotë dy metra, por dy shtëpi — sado të mëdha të jenë.
Lexoje në anglisht
Like house numbers on a street: “two houses down” doesn't mean two metres, it means two houses — however big they are.
Shembull kodic
int notat[] = {5, 4, 3};
int *p = notat;
printf("%d\n", *(p + 2)); // 3
p++; // tani tregon te 4