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

পয়েন্টার ডিক্লেয়ারেশন
int *p;
‘p’ হলো একটি পয়েন্টার ভেরিয়েবল যা অন্য একটি ইন্টিজার ভেরিয়েবলের ঠিকানা ধারণ করে।
পয়েন্টার ইনিশিয়ালাইজেশন
অ্যাড্রেস অপারেটর (&) পয়েন্টার ভেরিয়েবল ইনিশিয়ালাইজ করতে ব্যবহৃত হয়।
int qty = 175; int *p; p= &qty;

আসুন একটি উদাহরণ দেখি কীভাবে পয়েন্টার স্ট্রিং অ্যারেতে নির্দিষ্ট লোকেশনের এলিমেন্ট অ্যাক্সেস করতে সাহায্য করে।
এই প্রোগ্রামে, আমরা একটি নির্দিষ্ট লোকেশনে থাকা এলিমেন্ট অ্যাক্সেস করার চেষ্টা করছি। লোকেশনটি একটি অপারেশন দিয়ে খুঁজে বের করা যায়।
প্রি-ইনক্রিমেন্টেড পয়েন্টারকে প্রি-ইনক্রিমেন্টেড পয়েন্টার স্ট্রিংয়ের সাথে যোগ করে ৩২ বিয়োগ করলে সেই লোকেশনের মান পাওয়া যায়।
উদাহরণ
#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