Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

Pointer Arithmetic ใน C/C++

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