Imran Hasan
1 min readOct 2, 2020

পয়েন্টার ইন সি

আমরা যখন একটি ভেরিয়েবল ডিক্লেয়ার করি, int a = 0155434; তখন কম্পিউটার মেমরিতে জমা হয়। আমরা যদি কোনো ফাংশনের মধ্যে ভেরিয়েবল ডিক্লেয়ার করি তখন সেই মেমরি এরিয়াকে স্ট্যাক বলে, আর ফাংশনের বাহিরে ডিক্লেয়ার করলে সেই মেমরি এরিয়াকে গ্লোবাল বলে। এখন আমরা a কে বললাম যে তোমার টেলিফোন নাম্বার তো আমাকে দিলে, এখন তোমার ঠিকানাটা (Address ) ও আমাকে দাও , a বলল তুমি পারলে খুজে বের করো। তখন আমি এমন একটি বই কিনে নিয়ে আসলাম রামপুরা এরিয়ার যেখানে শুধু নাম আর ঠিকানা লেখা আছে , তো আমি সেখানে খুজতে লাগলাম a তোমার ঠিকানা কোথায়, বইয়ে লেখা দেখলাম যে আমি যদি নামের আগে ‘&’ দিয়ে কল দেই থাকে ঠিকানা আমাকে বলে দিবে,আমি কল দিলাম সাথে সাথে আমাকে ঠিকানা বলে দিলো, কিন্তু আমি সেই ঠিকানাটা ভুলে গেলাম, আমরা তো ঠিকানাটা লিখে রাখা উচিত ছিলো, কিন্তু আমার কাছে কোনো খাতা নেই, তবে এমন একটা ডাইরী আছে যেখানে শুধু ঠিকানা (Address ) গুলো লিখেন রাখা যায়। কিন্তু সেই ডাইরী আবার লক করা, সেটি খুলতে আবার ‘*’ চাবি ব্যবহার করতে হয়। তাহলে বেপারটা হল যে int *khan_villa = &a; আমরা a এর ঠিকানা বের করে ডাইরী মধ্যে চাবি দিয়ে খুলে রেখে দিলাম। পরে আমরা সেই ঠিকানা বেব করে অনেক কাজ করতে পারবো।

#include <stdio.h>

int main(){

int a = 54;

printf(“a lives at %p\n”, &a);

int *address = &a;

printf(“Valu of a is %p”,address);

return 0;

}

Imran Hasan
Imran Hasan

Written by Imran Hasan

DevOps Engineer - Building, Deploying and Scaling Software Solutions.

No responses yet