পয়েন্টার এবং অ্যারে সম্পর্কে যে ডিটেইলস তাদের পার্থক্য দেখায় সেগুলো নিচে দেওয়া হলো।
পয়েন্টার (Pointer)
একটি পয়েন্টার হলো এমন একটি ভেরিয়েবল যা অন্য একটি ভেরিয়েবলের অ্যাড্রেস সংরক্ষণ করে। যখন একটি ভেরিয়েবলকে মেমরি অ্যালোকেট করা হয়, পয়েন্টার সেই ভেরিয়েবলের মেমরি অ্যাড্রেসকে পয়েন্ট করে। অন্যারি অপারেটর (*) পয়েন্টার ভেরিয়েবল ঘোষণা করতে ব্যবহৃত হয়।
পয়েন্টার ঘোষণার সিনট্যাক্স নিচে দেওয়া হলো:
datatype *variable_name;
এখানে, datatype হলো ভেরিয়েবলের ডেটা টাইপ যেমন int, char, float ইত্যাদি। এবং variable_name হলো ইউজার দেওয়া ভেরিয়েবলের নাম।
পয়েন্টার প্রদর্শন করে একটি প্রোগ্রাম নিচে দেওয়া হলো।
উদাহরণ
#include <stdio.h>
int main() {
int a = 8;
int *ptr;
ptr = &a;
printf("Value of variable a: %d\n", a);
printf("Address of variable a: %d\n", ptr);
return 0;
}
উপরের প্রোগ্রামের আউটপুট নিচের মতো:
Value of variable a: 8 Address of variable a: -2018153420
অ্যারে (Array)
একটি অ্যারে হলো একই টাইপের এলিমেন্টগুলোর একটি সংগ্রহ যা সटी মেমরি লোকেশনগুলোতে থাকে। অ্যারেতে সবচেয়ে কম অ্যাড্রেস প্রথম এলিমেন্টের সাথে মিলে থাকে যখন সবচেয়ে বেশি অ্যাড্রেস শেষ এলিমেন্টের সাথে। অ্যারে ইনডেক্স শূন্য (০) থেকে শুরু হয় এবং অ্যারে সাইজ থেকে এক কম (array size - ১) পর্যন্ত থাকে।
আউটপুট
অ্যারের সিনট্যাক্স নিচে দেওয়া হলো:
type array_name[array_size];
এখানে, array_name হলো অ্যারেকে দিয়া নাম এবং array_size হলো অ্যারের আকার।
অ্যারে প্রদর্শন করে একটি প্রোগ্রাম নিচে দেওয়া হলো।
উদাহরণ
#include <stdio.h>
int main() {
int a[5];
int i, j;
for (i = 0; i < 5; i++) {
a[i] = i + 100;
}
for (j = 0; j < 5; j++) {
printf("Element[%d] = %d\n", j, a[j]);
}
return 0;
}
আউটপুট
উপরের প্রোগ্রামের আউটপুট নিচের মতো:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104