সি শিখার সময়, আপনি হয়ত 'পয়েন্টারস' শব্দটিটি দেখতে পেয়েছেন এবং প্রায়শই শুনেছেন যে এটি বুঝতে অসুবিধাজনক একটি ধারণা। পয়েন্টারগুলি বিভিন্ন প্রোগ্রামিং কার্যে সহায়ক এবং এটি বুঝতে অসুবিধা হয় না। এই নিবন্ধটি আপনাকে সি-র পয়েন্টারগুলির সাথে পরিচয় করিয়ে দেবে এবং আপনাকে বলবে কেন তারা এগুলি শেখা কেন এতটা কঠিন নয়।
নিম্নলিখিত এই নিবন্ধে পয়েন্টার অন্তর্ভুক্ত,
- পয়েন্টার কী?
- রেফারেন্স এবং ডি-রেফারেন্স অপারেটরগুলি
- পয়েন্টার প্রকার
- কীভাবে পয়েন্টার ব্যবহার করবেন
আসুন সি প্রবন্ধে এই পয়েন্টারটির প্রথম বিট দিয়ে শুরু করুন,
পয়েন্টার ইন সি
পয়েন্টার কী?
পয়েন্টারটি একটি ভেরিয়েবল যা কোনও ভেরিয়েবলের ঠিকানা সঞ্চয় করতে সক্ষম। এখন, আপনি জিজ্ঞাসা করতে পারেন যে এর ব্যবহার কী? মূলত, পয়েন্টারটি ভেরিয়েবলের মেমরি অবস্থানের দিকে নির্দেশ করে যার ঠিকানা সরবরাহ করা হয়। এই বৈশিষ্ট্যটি ডায়নামিক মেমোরি বরাদ্দে সহায়তা করে যা প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ দিক।
আসুন বুঝতে পারি এটি সিনট্যাক্স এবং একটি উদাহরণ দেখুন
ডেটা টাইপ * পয়েন্টার_নাম
উদাহরণ: int * ptr
সি নিবন্ধে এই পয়েন্টারগুলির পরবর্তী বিটটি নিম্নে দেওয়া হল
রেফারেন্স এবং ডি-রেফারেন্স অপারেটরগুলি
পয়েন্টার ধারণার গভীরে ডুব দেওয়ার আগে আসুন এমন কিছু বেসিক বুঝতে দেওয়া যাক যা পরে আমাদের সহায়তা করবে। পয়েন্টার ব্যবহার করার সময় আপনি অবশ্যই ‘&’ এবং ‘*’ অপারেটর ব্যবহার করবেন। এখন সময় তাদের অর্থ বোঝার এবং ব্যবহার করার।
প্রথমে, আসুন বুঝতে পারি রেফারেন্স অপারেটরকে প্রায়শই 'ঠিকানার ঠিকানা' অপারেটর হিসাবে ডাকা হয়। একটি ভেরিয়েবল সহ (অ্যাম্পারস্যান্ড) অপারেটরটি আমাদের প্রদত্ত ভেরিয়েবলের ঠিকানা হিসাবে পরিচিত একটি স্মৃতি অবস্থান দেয়।
উদাহরণ
int * ptr int a ptr = & a
ভেরিয়েবলের ঠিকানা ‘এ’ ভেরিয়েবল পিটিআর-এ সংরক্ষণ করা হয়।
এখন আসুন ডি-রেফারেন্সিং বা ‘ভ্যালু এট’ অপারেটরটি বুঝতে পারি যাকে একটি তারকাচিহ্ন (*) দ্বারা চিহ্নিত করা হয়। এটি মেমোরির অবস্থান থেকে পয়েন্টার ভেরিয়েবলে সঞ্চিত মান থেকে পুনরুদ্ধার করতে সহায়তা করে
উদাহরণ
int * ptr int a * ptr = & a printf ('a =% dn এর মান', * পিটিআর)
পয়েন্টার প্রকার পয়েন্টার ঘোষণার সময় ব্যবহৃত * ডি-রেফারেন্সিংয়ের উদ্দেশ্যে নয় তবে সংকলককে বলে যে প্রদত্ত ভেরিয়েবলটি পয়েন্টার।উপরের মুদ্রণ বিবৃতিটি মেমরির অবস্থানের উপস্থিত মানটি মুদ্রণ করে এবং এই মেমরির অবস্থানটি পয়েন্টার দ্বারা নির্দেশিত হয়। অর্থাত্ ‘এ’ ভেরিয়েবলের মান।
বিভিন্ন ধরণের পয়েন্টার রয়েছে যা কোনও প্রোগ্রামে তাদের ব্যবহারের পদ্ধতি অনুসারে পৃথক হয়।আমরা সর্বাধিক ব্যবহৃত ধরণের কয়েকটিতে নজর দেব।
ট্যালেন্ডার ওপেন স্টুডিও টিউটোরিয়াল পিডিএফ
নাল পয়েন্টার
কোনও নাল মান একটি পয়েন্টারকে বরাদ্দ করা হয় যখন আপনি নিশ্চিত হন না কোন ঠিকানাটি নির্ধারিত হবে। এটি ঘোষণার সময় কোনও পয়েন্টারে 'NULL' মান বরাদ্দের মাধ্যমে করা যেতে পারে। এই পয়েন্টারের মান 0 হয়।
int * ptr = NULL
ওয়াইল্ড পয়েন্টার
পয়েন্টার ভেরিয়েবলের কোনও মান নির্ধারণ না করে একটি বন্য পয়েন্টার তৈরি করা হয়। এটি সাবধানে ব্যবহার করা উচিত কারণ এটি অপ্রত্যাশিত ফলাফল হতে পারে।
ঝাঁকুনি পয়েন্টার
যখন কোনও পয়েন্টার মুছে ফেলা চলক বা ডি-বরাদ্দ মেমরিটির দিকে নির্দেশ করে তখন পয়েন্টারটি ঝুঁকির পয়েন্টার হিসাবে পরিচিত।এই পয়েন্টারটি অ-বিদ্যমান মেমরি অবস্থানের দিকে নির্দেশ করে। আসুন সি নিবন্ধে এই পয়েন্টারগুলির পরবর্তী বিটটি একবার দেখুন
কীভাবে পয়েন্টার ব্যবহার করবেন
এখন আমাদের কাছে রেফারেন্স এবং ডেরেফারেন্স অপারেটরগুলির একটি সংক্ষিপ্ত ধারণা রয়েছে। এই বিভাগে, আমরা পয়েন্টারগুলি কীভাবে ব্যবহার করব তা বুঝব। এখন অবধি আমরা শিখেছি কীভাবে কোনও পয়েন্টার ঘোষণা করতে হয় এবং এটি কিছু প্রাথমিক ক্রিয়াকলাপের জন্য ব্যবহার করতে পারি। এই মুহুর্তে, গাণিতিক ক্রিয়াকলাপগুলি করে সত্যই আশ্চর্যজনক প্রোগ্রামিং কার্যগুলির জন্য পয়েন্টারগুলি ব্যবহার করার জন্য আমাদের পর্যাপ্ত জ্ঞান রয়েছে।
সাধারণত, এই অপারেশনগুলি অ্যারেতে সঞ্চালিত হয়। 2 টি ঠিকানায় বিয়োগ করা আমাদের 2 মেমরি অবস্থানের মধ্যে দূরত্ব দিতে পারে।
int main () First int ফার্স্ট_রে [10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} / * আমাদের অ্যারে যার উপর আমরা অপারেশন করব * / ইনট * পিটিআর / * পয়েন্টার * / পিটিআর = প্রথম_আরে / * পয়েন্টার ভেরিয়েবলের জন্য অ্যারের ঠিকানা বরাদ্দ করুন * / এর জন্য (ইন্টি আই = ০ আই<10 i++) /*Performing operations*/ { printf('Value of *ptr variable = %dn', *ptr) printf('Value of ptr variable = %pnn', ptr) ptr++ } }
আউটপুট
কোডটি নিজের দ্বারা প্রয়োগ করার চেষ্টা করুন এবং বিভিন্ন গাণিতিক ক্রিয়াকলাপ করুন।এর স্ট্রিং সহ পয়েন্টার ব্যবহার করি।
# অন্তর্ভুক্ত # অন্তর্ভুক্ত ইন্ট মেইন () str চর স্ট্র [] = 'হ্যালো ওয়ার্ল্ড' / * একটি অ্যারে তৈরি করা হচ্ছে * / চর * পি / * পয়েন্টার * / পি = আরআর প্রিন্টফ ('আমাদের স্ট্রিংয়ের সমস্ত অক্ষর মুদ্রণ করা') পি = str এর জন্য (int i = 0i)
এটির সাথে আমরা ‘সি পয়েন্টার ইন সি’ এই ব্লগের শেষে এসেছি। আমি আশা করি আপনি এই তথ্যবহুল এবং সহায়ক খুঁজে পেয়েছেন, অনুরূপ বিষয়ে আরও টিউটোরিয়াল জন্য যোগাযোগ করুন। আপনি আমাদের প্রশিক্ষণ প্রোগ্রাম পরীক্ষা করতে পারেনo jQuery এর বিভিন্ন অ্যাপ্লিকেশন সহ গভীরতর জ্ঞান পান, আপনি পারেন 24/7 সমর্থন এবং আজীবন অ্যাক্সেস সহ লাইভ অনলাইন প্রশিক্ষণের জন্য।উপরের কোডটি বিভিন্ন স্ট্রিং এবং পরিবর্তনগুলি প্রয়োগ করুন। এখন, আমরা পয়েন্টার সম্পর্কিত সমস্ত মূল ধারণা সম্পর্কে ভাল ধারণা পেয়েছি।আমাদের জন্য একটি প্রশ্ন আছে? এই ব্লগের মন্তব্য বিভাগে তাদের উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।