সি ++ এ পয়েন্টারগুলি কীভাবে প্রয়োগ করা যায়?



এই নিবন্ধটি আপনাকে সি ++ তে পয়েন্টারগুলির ধারণার সাথে পরিচয় করিয়ে দেবে এবং তারপরে সমর্থনমূলক ব্যবহারিক বিক্ষোভের সাথে এটি অনুসরণ করবে।

পয়েন্টার সি ++ এ একটি পরিবর্তনশীল যা সি ++ তে অন্য ভেরিয়েবলের ঠিকানা ধারণ করে। ঠিকানাটি পয়েন্টার ভেরিয়েবলে সংরক্ষণ করা হয় এবং কল-বাই-রেফারেন্স বাস্তবায়নে সহায়তা করে।

নিম্নলিখিত পয়েন্টারগুলি এই নিবন্ধে কভার করা হবে,





সি ++ তে পয়েন্টারগুলিতে এই নিবন্ধটি দিয়ে শুরু করছি

বাক্য গঠন:



ডেটাটাইপ * পয়েন্টারনাম উদাহরণ: ইনট * পিটিআর
  • পয়েন্টার ভেরিয়েবলের নামের আগে একটি * চিহ্ন থাকে।
  • পয়েন্টারকে লোকেটার বা সূচকও বলা হয়।

পয়েন্টারের ব্যবহার:

  • গতিশীল মেমরি বরাদ্দ
  • অ্যারে, স্ট্রাকচার এবং ফাংশনগুলির বিভিন্ন প্রোগ্রামে

এখানে একটি উদাহরণ কোড রয়েছে:

# নেমস্পেসটি এসটিডি ইন্ট মেইন () {ইন্ট নাম্বার = 17 ইনট * পিটিআর পিটিআর = এবং নাম কোট ব্যবহার করে অন্তর্ভুক্ত<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

আউটপুট:
আউটপুট- সি ++ এ পয়েন্টার - এডুরেকা



নতুনদের জন্য বড় ডেটা টিউটোরিয়াল

ব্যাখ্যা:

উপরের প্রোগ্রামে আমরা একটি পয়েন্টারের প্রাথমিক কাজটি দেখাই। আমাদের মান 17 সহ একটি পূর্ণসংখ্যার ভেরিয়েবল নাম রয়েছে We আমাদের কাছে int টাইপের পয়েন্টার ভেরিয়েবল পিটিআর রয়েছে। আমরা পয়েন্টার পিটিআর এর জন্য নম্বরের ঠিকানা বরাদ্দ করি।

আমরা প্রথমে পিটিআর এর মান মুদ্রণ করি, এটি ঠিকানা। এর পরে, আমরা নাম মানটি প্রিন্ট করব এবং শেষে, আমরা পয়েন্টার পিটিআর দ্বারা রাখা অবস্থানে মানটি প্রিন্ট করব।

সি ++ তে পয়েন্টারগুলিতে এই নিবন্ধটি নিয়ে চলছে

পয়েন্টার এবং অ্যারে:

আমরা অ্যারের প্রথম উপাদানটিকে পয়েন্টার হিসাবে বিবেচনা করতে পারি, কারণ অ্যারের নামটিতে প্রথম উপাদানটির ঠিকানা থাকে। আমরা নিম্নলিখিত ফ্যাশনে একটি পয়েন্টার ব্যবহার করতে পারি।

এখানে একটি উদাহরণ কোড:

# নেমস্পেস ব্যবহার করে স্ট্যান্ড ইনট মেইন () {ইন্ট আরআর [3] = {5, 10, 20} ইন্টি * পিটিআর পিটিআর = আরআর কাউট<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 আউটপুট: 

ব্যাখ্যা:

উপরের প্রোগ্রামে আমরা একটি অ্যারের সাথে পয়েন্টারের প্রাথমিক কাজটি দেখাই। আমাদের 5,10,20 মান সহ একটি অ্যারে অ্যারের রয়েছে। আমাদের কাছে টাইপ ইন্টির পয়েন্টার ভেরিয়েবল পিটিআর রয়েছে। আমরা পয়েন্টার পিআরটি-তে আর্টের ঠিকানা বরাদ্দ করি।

আমরা প্রথমে পিটিআর [0] এর মান মুদ্রণ করি, এটি অ্যারের প্রথম উপাদান। এর পরে, আমরা যথাক্রমে দ্বিতীয় এবং তৃতীয় উপাদানগুলি মুদ্রণ করি। অ্যারে উপাদানগুলি ক্রমাগত সংরক্ষণ করা হয়, তাই পয়েন্টার বৃদ্ধি দ্বারা অ্যারের অন্যান্য অবস্থান অ্যাক্সেস করতে পারে।

সি ++ তে পয়েন্টারগুলিতে এই নিবন্ধটি নিয়ে চলছে

নাল পয়েন্টার:

পয়েন্টারগুলির প্রকার রয়েছে যার কোনও মূল্য নেই এবং নাল মান ধরে

উদাহরণ :

int * ptr = NULL

তারা লিঙ্কযুক্ত তালিকার মতো ডেটা স্ট্রাকচারে খুব দরকারী।

সি ++ তে পয়েন্টারগুলিতে এই নিবন্ধটি নিয়ে চলছে

অকার্যকর পয়েন্টার:

এগুলি হ'ল পয়েন্টারগুলির প্রকার যা রিটার্নের ধরণ নেই।

সি ++ তে পয়েন্টারগুলিতে এই নিবন্ধটি নিয়ে চলছে

পয়েন্টার গাণিতিক অপারেশন:

পয়েন্টারগুলিতে বিভিন্ন অপারেশন করা যেতে পারে। এখানে কয়েকটি গুরুত্বপূর্ণ ধরণ রয়েছে।

  • বর্ধিত (++)
  • হ্রাস (-)
  • দুটি পয়েন্টারের মধ্যে পার্থক্য (p1-p2)
  • একটি পয়েন্টার (+ বা + =) এর সাথে একটি পূর্ণসংখ্যা যোগ করুন
  • পয়েন্টার থেকে পূর্ণসংখ্যার বিয়োগ (- বা - =)

এই অপারেশনগুলির কয়েকটি ডেমো করার জন্য এখানে একটি কোড দেওয়া হয়েছে:

# নেমস্পেসের সাথে এসটিডি ইন্ট মেইন () {ইন্ট আরআর [3] = {10, 100, 200} ইনট * পিটিআর পিটিআর = আরারের জন্য (অন্তর্গত i = 0 i) ব্যবহার করুন<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

আউটপুট:

ব্যাখ্যা:

আমরা উপরের প্রোগ্রামটিতে পয়েন্টার ভেরিয়েবলের বর্ধনের সহজ গাণিতিক অপারেশনটি প্রদর্শন করি।

সি ++ তে পয়েন্টারগুলিতে এই নিবন্ধটি নিয়ে চলছে

পয়েন্টার পয়েন্টার:

এই ধরণের সিস্টেমে দুটি পয়েন্টার রয়েছে। প্রথম পয়েন্টারটি দ্বিতীয় পয়েন্টারটিতে এবং দ্বিতীয় পয়েন্টারটি ভেরিয়েবলের দিকে নির্দেশ করে যা মানটি ধারণ করে।

এখানে একটি উদাহরণ কোড দেওয়া হয়েছে:

# নেমস্পেসটি এসটিডি ইন্ট মেইন () {ইন্ট নাম্বার ইনট * পিটিআর ইন্ট ** পিপিটিআর নাম্বার = 3000 পিটিআর = এবং নাম পিপিটিআর = এবং পিটিআর কোট ব্যবহার করে অন্তর্ভুক্ত করুন<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

আউটপুট:

সি ++ তে পয়েন্টারগুলিতে এই নিবন্ধটি নিয়ে চলছে

কার্যাদি পয়েন্টার:

এটি ফাংশনগুলিতে পয়েন্টারগুলি পাশ করার একটি উপায়। ফাংশন প্যারামিটার অবশ্যই পয়েন্টার প্রকার হিসাবে ঘোষণা করতে হবে। এটি নীচের কোডে দেখানো হয়েছে,

# নেমস্পেস স্টাড ফ্ল্যাট গেটএভারেজ (ইনট * আরআর, ইনট সাইজ) ইন্ট মেইন () ইনটেনশন ব্যালেন্স [5] = {1432, 232, 3232, 17, 502} ফ্লাট গড় গড় = বেতনের গড় (ভারসাম্য, 5) কোট ব্যবহার করুন<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg } 


আউটপুট

এইভাবে আমরা কোনও ফাংশনে একটি পয়েন্টারটি পাস করি।

এভাবে আমরা ‘সি ++ ইন পয়েন্টারস’ শীর্ষক এই নিবন্ধটির শেষে এসেছি। আপনি যদি আরও শিখতে চান তবে এটি দেখুন এডুরেকা, একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা। হাইবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্ক সহ আপনাকে মূল এবং উন্নত জাভা ধারণার জন্য প্রশিক্ষণের জন্য ডিজাইন করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই ব্লগের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।