พอยน์เตอร์มีหลายแนวคิดแต่อย่างง่าย และสำคัญมากต่อการเขียนโปรแกรม 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