পয়েন্টার হলো একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।
নিচের স্টেটমেন্টটি বিবেচনা করুন:
int qty = 179;

পয়েন্টার ঘোষণা
পয়েন্টার ঘোষণার সিনট্যাক্স নিম্নরূপ:
int *p;
এখানে, 'p' একটি পয়েন্টার ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা ধারণ করে।
পয়েন্টার инициализация (শুরু করা)
অ্যাড্রেস অপারেটর (&) ব্যবহার করে পয়েন্টার ভেরিয়েবল инициализация করা হয়।
উদাহরণস্বরূপ,
int qty = 175; int *p; p= &qty;
পয়েন্টার অ্যারে
এটি ঠিকানার সমষ্টি (অথবা পয়েন্টারের সমষ্টি)।
ঘোষণা
পয়েন্টার অ্যারের ঘোষণা নিম্নরূপ:
datatype *pointername [size];
উদাহরণস্বরূপ,
int *p[5];
এটি পাঁচটি ইন্টিজার এলিমেন্টের ঠিকানা ধারণ করতে সক্ষম একটি পয়েন্টার অ্যারে রিপ্রেজেন্ট করে।
ইনিশিয়ালাইজেশন
ইনিশিয়ালাইজেশনের জন্য '&' ব্যবহার করা হয়।
উদাহরণস্বরূপ,
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
অ্যাক্সেস করা
অ্যাক্সেসের জন্য ইন্ডিরেকশন অপারেটর (*) ব্যবহার করা হয়।
উদাহরণস্বরূপ,
for (i=0, i<3; i++) printf ("%d", *p[i]);
প্রোগ্রাম
পয়েন্টার ব্যবহার করে অ্যারে এলিমেন্টের যোগফল বের করার C প্রোগ্রাম:
//sum of array elements using pointers #include <stdio.h> #include <malloc.h> void main(){ int i, n, sum = 0; int *ptr; printf("Enter size of array : \n"); scanf("%d", &n); ptr = (int *) malloc(n * sizeof(int)); printf("Enter elements in the List \n"); for (i = 0; i < n; i++){ scanf("%d", ptr + i); } //calculate sum of elements for (i = 0; i < n; i++){ sum = sum + *(ptr + i); } printf("Sum of all elements in an array is = %d\n", sum); return 0; }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফলটি দেখায়:
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70