যদি type name[count]
কোনও ফাংশনে এক্সপ্রেশন লেখা থাকে তবে আপনি সি সংকলককে স্ট্যাক ফ্রেম sizeof(type)*count
বাইটে বরাদ্দ করতে এবং অ্যারের মধ্যে প্রথম উপাদানটির ঠিকানা গণনা করতে বলুন ।
যদি অভিব্যক্তিটি type name[count]
সমস্ত ফাংশনগুলির বাইরে লিখিত হয় এবং সংজ্ঞাগুলি নির্দেশ করে তবে আপনি সি কম্পাইলারকে ডেটা সেগমেন্ট sizeof(type)*count
বাইটে বরাদ্দ করতে এবং অ্যারের মধ্যে প্রথম উপাদানটির ঠিকানা গণনা করতে বলে।
name
আসলে ধ্রুবক বস্তু যা অ্যারের প্রথম উপাদানটির ঠিকানা সঞ্চয় করে এবং প্রতিটি বস্তু যা কিছু মেমরির ঠিকানা সঞ্চয় করে তাকে পয়েন্টার বলা হয়, সুতরাং এটি কারণ যা আপনি name
অ্যারের চেয়ে পয়েন্টার হিসাবে বিবেচনা করেন। নোট করুন যে সি তে অ্যারেগুলি কেবল পয়েন্টারগুলির মাধ্যমেই অ্যাক্সেস করা যায়।
যদি count
কোনও ধ্রুবক অভিব্যক্তি যা শূন্যকে মূল্যায়ণ করে তবে আপনি সি সংকলককে স্ট্যাক ফ্রেম বা ডেটা বিভাগে শূন্য বাইট বরাদ্দ করতে এবং অ্যারের মধ্যে প্রথম উপাদানটির ঠিকানা ফেরত দিতে বলুন, তবে এটি করার ক্ষেত্রে সমস্যাটি হ'ল প্রথম উপাদানটি শূন্য দৈর্ঘ্যের অ্যারের উপস্থিতি নেই এবং আপনি অস্তিত্ব নেই এমন কোনও ঠিকানার গণনা করতে পারবেন না।
এটি যৌক্তিক যে উপাদান নং। দৈর্ঘ্যের অ্যারে count+1
বিদ্যমান নেই count
, সুতরাং এই কারণেই সি সংকলকটি কোনও ফাংশনের ভিতরে এবং বাইরে ভেরিয়েবল হিসাবে শূন্য দৈর্ঘ্যের অ্যারে সংজ্ঞায়িত করতে নিষেধ করে, কারণ name
তখনকার বিষয়বস্তু কী ? name
ঠিক ঠিক ঠিকানা কি ?
যদি p
পয়েন্টার হয় তবে এক্সপ্রেশনটি p[n]
সমান*(p + n)
যেখানে ডান দিকের অ্যাসিরিস্ক * পয়েন্টারের ডেরিফারেন্স অপারেশন, যার অর্থ দ্বারা চিহ্নিত p + n
মেমোরিটি অ্যাক্সেস করা বা মেমরিটি অ্যাক্সেস করতে পারে যার ঠিকানা সঞ্চিত আছে p + n
, যেখানে p + n
পয়েন্টার এক্সপ্রেশন রয়েছে, এটি ঠিকানাটি নিয়ে যায় p
এবং এই ঠিকানায় সংখ্যাকে n
গুণিত করে পয়েন্টারের ধরণের আকার p
।
একটি ঠিকানা এবং একটি নম্বর যুক্ত করা সম্ভব?
হ্যাঁ এটি সম্ভব, কারণ ঠিকানাটি স্বাক্ষরযুক্ত পূর্ণসংখ্যাটি হেক্সাডেসিমাল স্বরলিপিতে সাধারণত উপস্থাপিত হয়।