কম্পিউটার টিউটোরিয়াল

C++ পয়েন্টারে NULL, 0 নাকি nullptr? (What should we assign to a C++ pointer: Null or 0?)

পয়েন্টার ইনিশিয়ালাইজেশন

C++-এ NULL ম্যাক্রো সাধারণত 0 হিসেবে ডিফাইন করা থাকে। দুটোই ইন্টিজার লিটারেল।

তিনটি অপশন

float *p1 = NULL;   // C-স্টাইল, 0-এ কনভার্ট
float *p2 = 0;      // সরাসরি ০
float *p3 = nullptr; // C++11: টাইপ-সেফ নাল পয়েন্টার লিটারেল (recommended)

কেন nullptr ভালো?

  • টাইপ-সেফ: শুধু পয়েন্টার কনটেক্সটে ব্যবহার করা যায়, ইন্টিজার কনটেক্সটে নয়।
  • অ্যাম্বিগুইটি এড়ায়: ওভারলোডেড ফাংশন কলে NULL বা 0 ইন্টিজার হিসেবে মনে হয়ে ভুল ওভারলোড বেছে নিতে পারে।
  • আধুনিক C++ (C++11 এবং পরবর্তী) স্ট্যান্ডার্ড।

সুপারিশ: সবসময় nullptr ব্যবহার করুন।

  1. C++-এ পয়েন্টার অপারেটর * (ইন্ডিরেকশন)

  2. C++-এ পয়েন্টার অপারেটর & (অ্যাড্রেস অফ)

  3. লিনাক্সে C++-এর জন্য সেরা IDE কী?

  4. C++-এ restrict কিওয়ার্ডের অর্থ