পয়েন্টার হল একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।
পয়েন্টার ঘোষণা, আরম্ভ এবং অ্যাক্সেস
নিম্নলিখিত বিবৃতিটি বিবেচনা করুন -
int qty = 179;
পয়েন্টার ঘোষণা করা হচ্ছে
int *p;
'p' হল একটি পয়েন্টার ভেরিয়েবল যা অন্য পূর্ণসংখ্যা ভেরিয়েবলের ঠিকানা ধারণ করে।
পয়েন্টারের সূচনা
ঠিকানা অপারেটর (&) একটি পয়েন্টার ভেরিয়েবল শুরু করতে ব্যবহৃত হয়।
int qty = 175; int *p; p= &qty;
আসুন একটি উদাহরণ বিবেচনা করি কিভাবে পয়েন্টারটি স্ট্রিং এর একটি অ্যারের উপাদানগুলি অ্যাক্সেস করতে কার্যকর।
এই প্রোগ্রামে, আমরা একটি উপাদান অ্যাক্সেস করার চেষ্টা করছি যা নির্দিষ্ট স্থানে উপস্থিত রয়েছে। একটি অপারেশন ব্যবহার করে অবস্থান খুঁজে পাওয়া যেতে পারে।
প্রি-ইনক্রিমেন্টেড পয়েন্টার স্ট্রিং-এ প্রি-ইনক্রিমেন্টেড পয়েন্টার যোগ করে এবং 32 বিয়োগ করে, আপনি সেই অবস্থানে মান পাবেন।
উদাহরণ
#include<stdio.h> int main(){ char s[] = {'a', 'b', 'c', '\n', 'c', '\0'}; char *p, *str, *str1; p = &s[3]; str = p; str1 = s; printf("%d", ++*p + ++*str1-32); return 0; }
আউটপুট
77
ব্যাখ্যা
p = &s[3]. i.e p = address of '\n'; str = p; i.e str = address of p; str1 = s; str1 = address of 'a'; printf ("%d", ++*p + ++*str1 - 32); i.e printf("%d", ++\n + a -32); i.e printf("%d", 12 + 97 -32); i.e printf("%d", 12 + 65); i.e printf("%d", 77); Thus 77 is outputted