কেন argv
হিসাবে "একটি অ্যারের প্রথম সূচক পয়েন্টার পয়েন্টার", বদলে শুধু হচ্ছে "একটি পয়েন্টার অ্যারের প্রথম সূচক" (ঘোষিত char* argv
)?
"পয়েন্টার থেকে পয়েন্টার" ধারণাটি এখানে কেন প্রয়োজনীয়?
char* argv[]
স্থান ভুল জায়গায় রাখে। বলুন char *argv[]
, এবং এখন এটি স্পষ্ট হয়ে গেছে যে এর অর্থ "এক্সপ্রেশনটি *argv[n]
টাইপের একটি পরিবর্তনশীল char
"। কোনও পয়েন্টার কী এবং কোনও পয়েন্টারটিতে কীসের ইঙ্গিত দেয় এবং এগুলি নিয়ে কাজ করার চেষ্টা করে আটকে যাবেন না। ঘোষণাপত্রে আপনাকে জানানো হচ্ছে যে আপনি এই জিনিসটিতে কী পরিচালনা করতে পারেন।
char * argv[]
অনুরূপ সি ++ কনস্ট্রাক্টের সাথে তুলনা করুন std::string argv[]
এবং এটি পার্স করা আরও সহজ হতে পারে। ... ঠিক এভাবে লেখা শুরু করবেন না !
char &func(int);
যা &func(5)
টাইপ করে না char
।
char* argv[]
বাchar**
। এটি একটি চরিত্রের পয়েন্টারটির পয়েন্টার; বিশেষত বাহ্যিক পয়েন্টার একটি অ্যারের প্রথম পয়েন্টারটিতে নির্দেশ করে এবং অভ্যন্তরীণ পয়েন্টারগুলি নুল-টার্মিনেটেড স্ট্রিংগুলির প্রথম অক্ষরগুলিতে নির্দেশ করে। এখানে কোনও সূচক জড়িত নেই।