সি প্রোগ্রামিং ভাষায় পয়েন্টার অ্যারে ব্যবহার করে একটি অ্যারে অ্যাক্সেস করা সম্ভব। অ্যারের নাম নিজেই একটি পয়েন্টার হিসেবে কাজ করে, যা অ্যারের প্রথম উপাদানের ঠিকানা নির্দেশ করে। পয়েন্টার ব্যবহার করে অ্যারের প্রতিটি উপাদানে প্রবেশ করার প্রক্রিয়াটিকে পয়েন্টার দিয়ে অ্যারে অ্যাক্সেস বলা হয়। এটি অ্যারের উপাদানগুলিতে সরাসরি মেমোরি অ্যাড্রেস ব্যবহার করে কাজ করতে সাহায্য করে, যা প্রোগ্রামের কার্যকারিতা বৃদ্ধি করে।
পয়েন্টারের মাধ্যমে অ্যারে অ্যাক্সেস করার পদ্ধতি
ধরা যাক, আমাদের একটি int টাইপের অ্যারে আছে এবং আমরা সেটির প্রতিটি উপাদানে পয়েন্টার ব্যবহার করে প্রবেশ করতে চাই।
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50}; // একটি অ্যারে ডিক্লেয়ার ও ইনিশিয়ালাইজ করা হয়েছে
int *ptr = arr; // অ্যারের নাম প্রথম উপাদানের ঠিকানা নির্দেশ করে, তাই ptr = arr
// পয়েন্টারের মাধ্যমে অ্যারের প্রতিটি উপাদান প্রিন্ট করা
for (int i = 0; i < 5; i++) {
printf("Element at index %d: %d\n", i, *(ptr + i));
}
return 0;
}
আউটপুট:
mathematica
Copy code
Element at index 0: 10
Element at index 1: 20
Element at index 2: 30
Element at index 3: 40
Element at index 4: 50
ব্যাখ্যা:
- এখানে
ptrনামক একটি পয়েন্টারarrএর প্রথম উপাদানের ঠিকানা ধারণ করেছে। *(ptr + i)ব্যবহার করেiতম ইনডেক্সে থাকা মানে প্রবেশ করা হয়েছে।ptr + iহলোarr[i]এর ঠিকানা।*(ptr + i)হলো সেই ঠিকানায় থাকা মান।
পয়েন্টার অ্যারিথমেটিক্স ব্যবহার করে অ্যারে অ্যাক্সেস
সি ভাষায় পয়েন্টার অ্যারিথমেটিক্স ব্যবহার করে সহজেই অ্যারের প্রতিটি উপাদানে প্রবেশ করা যায়। উদাহরণস্বরূপ, ptr++ ব্যবহার করলে পয়েন্টারটি পরবর্তী ইনডেক্সের ঠিকানায় চলে যায়।
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
int *ptr = arr; // প্রথম উপাদানের ঠিকানা পয়েন্টারে সেট করা
// পয়েন্টার ইনক্রিমেন্ট করে প্রতিটি উপাদান প্রিন্ট করা
for (int i = 0; i < 5; i++) {
printf("Element %d: %d\n", i, *ptr);
ptr++; // পরবর্তী ইনডেক্সে যাওয়া
}
return 0;
}
আউটপুট:
Element 0: 10
Element 1: 20
Element 2: 30
Element 3: 40
Element 4: 50
ব্যাখ্যা:
- এখানে
ptrপ্রতি ইটারেশনেptr++দ্বারা পরবর্তী ইনডেক্সে চলে যায় এবং প্রতিটি উপাদানে প্রবেশ করে মান প্রিন্ট করে।
পয়েন্টার অ্যারে ব্যবহারিক প্রয়োগ
এটি ডেটা প্রসেসিং বা অ্যারে অপারেশন করতে কাজে লাগে। যেমন:
১. অ্যারের মানের যোগফল নির্ণয়:
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
int *ptr = arr;
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += *ptr; // প্রতিটি উপাদানের মান যোগ করা হচ্ছে
ptr++;
}
printf("Sum of array elements: %d\n", sum);
return 0;
}
আউটপুট:
Sum of array elements: 150
২. পয়েন্টার দিয়ে অ্যারের সর্বাধিক মান নির্ণয়:
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 75, 40, 50};
int *ptr = arr;
int max = *ptr;
for (int i = 1; i < 5; i++) {
if (*(ptr + i) > max) {
max = *(ptr + i);
}
}
printf("Maximum element in array: %d\n", max);
return 0;
}
আউটপুট:
Maximum element in array: 75
সংক্ষেপে:
- পয়েন্টার দিয়ে অ্যারে অ্যাক্সেস: অ্যারের প্রথম উপাদানের ঠিকানা ধারণ করে পয়েন্টার দিয়ে প্রতিটি উপাদানে প্রবেশ করা।
- পয়েন্টার ব্যবহার করে অ্যারে ম্যানিপুলেশনের মাধ্যমে কার্যকর ও সরাসরি মেমোরি অ্যাক্সেস সম্ভব হয়।
Read more