Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อเข้าถึงองค์ประกอบของอาร์เรย์โดยใช้ตัวชี้


พอยน์เตอร์เก็บตำแหน่งหน่วยความจำหรือที่อยู่ของตัวแปร กล่าวอีกนัยหนึ่ง พอยน์เตอร์อ้างอิงตำแหน่งหน่วยความจำ และรับค่าที่เก็บไว้ที่ตำแหน่งหน่วยความจำนั้นเรียกว่า 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++;
}