พอยน์เตอร์เก็บตำแหน่งหน่วยความจำหรือที่อยู่ของตัวแปร กล่าวอีกนัยหนึ่ง พอยน์เตอร์อ้างอิงตำแหน่งหน่วยความจำ และรับค่าที่เก็บไว้ที่ตำแหน่งหน่วยความจำนั้นเรียกว่า dereference ตัวชี้
โปรแกรมที่ใช้พอยน์เตอร์ในการเข้าถึงองค์ประกอบเดียวของอาร์เรย์มีดังนี้ -
ตัวอย่าง
#include <iostream> using namespace std; int main() { int arr[5] = {5, 2, 9, 4, 1}; int *ptr = &arr[2]; cout<<"The value in the second index of the array is: "<< *ptr; return 0; }
ผลลัพธ์
The value in the second index of the array is: 9
ในโปรแกรมข้างต้น ptr ตัวชี้จะเก็บที่อยู่ขององค์ประกอบไว้ที่ดัชนีที่สามในอาร์เรย์คือ 9
ซึ่งแสดงในข้อมูลโค้ดต่อไปนี้
int *ptr = &arr[2];
ตัวชี้ถูกยกเลิกการอ้างอิง และค่า 9 จะแสดงโดยใช้ตัวดำเนินการทางอ้อม (*) นี้แสดงให้เห็นดังนี้
cout<<"The value in the second index of the array is: "<< *ptr;
โปรแกรมอื่นที่ใช้พอยน์เตอร์ตัวเดียวในการเข้าถึงองค์ประกอบทั้งหมดของอาร์เรย์มีดังนี้
ตัวอย่าง
#include <iostream> using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; int *ptr = &arr[0]; cout<<"The values in the array are: "; for(int i = 0; i < 5; i++) { cout<< *ptr <<" "; ptr++; } return 0; }
ผลลัพธ์
The values in the array are: 1 2 3 4 5
ในโปรแกรมข้างต้น ptr ตัวชี้จะเก็บที่อยู่ขององค์ประกอบแรกของอาร์เรย์ ได้ดังนี้
int *ptr = &arr[0];
หลังจากนี้ for loop จะใช้เพื่อยกเลิกการอ้างอิงตัวชี้และพิมพ์องค์ประกอบทั้งหมดในอาร์เรย์ ตัวชี้จะเพิ่มขึ้นในการวนซ้ำแต่ละครั้งของลูป เช่น ในการวนซ้ำแต่ละครั้ง ตัวชี้จะชี้ไปที่องค์ประกอบถัดไปของอาร์เรย์ จากนั้นค่าอาร์เรย์นั้นจะถูกพิมพ์ ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้
for(int i = 0; i < 5; i++) { cout<< *ptr <<" "; ptr++; }