Pointer arithmetic ใช้ทำ arithmetic บน pointer: addition, subtraction, increment, decrement
บน 32-bit machine: increment/decrement เปลี่ยน address 2 bytes, add/subtract เปลี่ยน 2*number
บน 64-bit machine: increment/decrement เปลี่ยน 4 bytes, add/subtract เปลี่ยน 4*number
ตัวอย่าง
#include <stdio.h>
int main() {
int val = 28;
int *pt = &val;
printf("Address of pointer: %u\n", pt);
pt = pt + 5;
printf("Addition to pointer: %u\n", pt);
pt = pt - 5;
printf("Subtraction from pointer: %u\n", pt);
pt = pt + 1;
printf("Increment to pointer: %u\n", pt);
pt = pt - 1;
printf("Decrement to pointer: %u\n", pt);
return 0;
}ผลลัพธ์ (บน 64-bit)
Address of pointer: 3938439860 Addition to pointer: 3938439880 Subtraction from pointer: 3938439860 Increment to pointer: 3938439864 Decrement to pointer: 3938439860
pt + 5 เพิ่ม address 20 bytes (5 * sizeof(int)=4), pt + 1 เพิ่ม 4 bytes