সি ++ এর প্রথম দিনগুলিতে যখন এটি সি এর শীর্ষে বোল্ট করা হত, আপনি NULL ব্যবহার করতে পারেন নি হিসাবে এটি সংজ্ঞায়িত হয়েছিল (void*)0
। আপনি ব্যতীত অন্য কোনও পয়েন্টারে NULL বরাদ্দ করতে পারেন নি void*
, যা এটিকে অকেজো করে তোলে। সেই দিনগুলিতে, এটি গৃহীত হয়েছিল যে আপনি 0
নাল পয়েন্টারগুলির জন্য (শূন্য) ব্যবহার করেছেন।
আজ অবধি, আমি শূন্যটি শূন্য পয়েন্টার হিসাবে ব্যবহার করা চালিয়েছি তবে আমার চারপাশের লোকেরা ব্যবহারের পক্ষে জোর দেয় NULL
। আমি NULL
বিদ্যমান মানটিকে একটি নাম ( ) দেওয়ার ক্ষেত্রে ব্যক্তিগতভাবে কোনও সুবিধা দেখি না - এবং যেহেতু আমি পয়েন্টারগুলিকে সত্যের মান হিসাবেও পরীক্ষা করতে পছন্দ করি:
if (p && !q)
do_something();
তারপরে শূন্য ব্যবহার করা আরও অর্থবোধ করে (আপনি যদি ব্যবহার করেন তবে আপনি NULL
যৌক্তিকভাবে ব্যবহার করতে পারবেন না p && !q
- NULL
যদি আপনি NULL
শূন্য না ধরে থাকেন তবে আপনার ব্যবহারের ক্ষেত্রে স্পষ্টভাবে তুলনা করা দরকার NULL
)।
NULL (বা তদ্বিপরীত) এর চেয়ে শূন্যকে প্রাধান্য দেওয়ার কোনও উদ্দেশ্যগত কারণ আছে, বা সমস্ত কি কেবল ব্যক্তিগত পছন্দ?
সম্পাদনা: আমার যুক্ত করা উচিত (এবং মূলত বলতে চাইছিলাম) যে RAII এবং ব্যতিক্রমগুলির সাথে আমি খুব কমই শূন্য / NULL পয়েন্টার ব্যবহার করি তবে কখনও কখনও আপনার এগুলি এখনও প্রয়োজন need