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

ตัวอย่างการบวกและลบพอยน์เตอร์ (Pointer Addition and Subtraction) ในภาษา C


พอยน์เตอร์มีหลายแนวคิดแต่อย่างง่าย และสำคัญมากต่อการเขียนโปรแกรม C

สองแนวคิดคณิตศาสตร์พอยน์เตอร์ คือ การบวกและการลบพอยน์เตอร์

การบวกพอยน์เตอร์ (Pointer Addition)

การบวกพอยน์เตอร์ หมายถึงการบวกค่ากับตัวแปรพอยน์เตอร์

สูตรมีดังนี้:

new_address = current_address + (number * size_of(data_type))

ตัวอย่าง

โปรแกรม C สำหรับการบวกพอยน์เตอร์:

#include <stdio.h>

int main() {
    int num = 500;
    int *ptr; // พอยน์เตอร์ชี้ int
    ptr = # // จัดเก็บที่อยู่ของตัวแปร number
    
    printf("add of ptr is %u \n", ptr);
    ptr = ptr + 7; // บวก 7 ให้พอยน์เตอร์
    printf("after adding add of ptr is %u \n", ptr);
    return 0;
}

ผลลัพธ์

เมื่อรันโปรแกรม จะได้ผลลัพธ์ดังนี้:

add of ptr is 6422036
after adding add of ptr is 6422064

การลบพอยน์เตอร์ (Pointer Subtraction)

ลบค่าออกจากตัวแปรพอยน์เตอร์ การลบตัวเลขใดๆ จากพอยน์เตอร์ จะได้ที่อยู่

สูตรมีดังนี้:

new_address = current_address - (number * size_of(data_type))

ตัวอย่าง

โปรแกรม C สำหรับการลบพอยน์เตอร์:

#include <stdio.h>

int main() {
    int num = 500;
    int *ptr; // พอยน์เตอร์ชี้ int
    ptr = # // จัดเก็บที่อยู่ของตัวแปร number
    
    printf("addr of ptr is %u \n", ptr);
    ptr = ptr - 5; // ลบ 5 จากพอยน์เตอร์
    printf("after sub Addr of ptr is %u \n", ptr);
    return 0;
}

ผลลัพธ์

เมื่อรันโปรแกรม จะได้ผลลัพธ์ดังนี้:

addr of ptr is 6422036
after sub Addr of ptr is 6422016