আপনি একই সাথে আপনার প্রশ্ন সি এবং সি ++ ট্যাগ করেছেন, যখন এই ভাষাগুলিতে উত্তর উল্লেখযোগ্যভাবে আলাদা।
প্রথমত, আপনার প্রশ্নের শিরোনামের শব্দগুচ্ছটি ভুল (বা আরও সুনির্দিষ্টভাবে প্রশ্নটির সাথে অপ্রাসঙ্গিক)। আপনার উভয় উদাহরণে ভেরিয়েবল এক লাইনে এক সাথে ঘোষিত এবং সংজ্ঞায়িত করা হয়। আপনার উদাহরণগুলির মধ্যে পার্থক্যটি হ'ল প্রথমটির মধ্যে ভেরিয়েবলগুলি হয় অবিচ্ছিন্ন বা ডামি মান দিয়ে আরম্ভ করা হয় এবং পরে এটি একটি অর্থবহ মান নির্ধারিত হয়। দ্বিতীয় উদাহরণে ভেরিয়েবলগুলি এখনই সূচনা করা হয়েছে।
দ্বিতীয়ত, সি ++ ভাষায়, যেমন @ নাইটক্র্যাকার তার উত্তরে উল্লেখ করেছেন যে এই দুটি কনস্ট্রাক্ট শব্দার্থগতভাবে পৃথক। প্রথমটি আরম্ভের উপর নির্ভর করে যখন দ্বিতীয়টি - নিয়োগের ক্ষেত্রে। সি ++ এ এই ক্রিয়াকলাপগুলি ওভারলোডযোগ্য এবং অতএব সম্ভাব্যভাবে বিভিন্ন ফলাফলের দিকে নিয়ে যেতে পারে (যদিও কেউ উল্লেখ করতে পারেন যে সমীক্ষা এবং অ্যাসাইনমেন্টের অ-সমতুল্য ওভারলোডগুলি উত্পাদন করা ভাল ধারণা নয়)।
মূল স্ট্যান্ডার্ড সি ল্যাঙ্গুয়েজে (C89 / 90) ব্লকের মাঝখানে ভেরিয়েবলগুলি ঘোষণা করা অবৈধ, যার কারণে আপনি ব্লকের শুরুতে অবিচ্ছিন্ন ঘোষিত (বা ডামি মানের সাথে সূচনাপ্রাপ্ত) ভেরিয়েবলগুলি দেখতে পাবেন এবং তারপরে অর্থবহ অর্পণ করা হবে might মানগুলি পরে, যখন সেই অর্থবহ মানগুলি উপলব্ধ হয়।
C99 ভাষায় ব্লকের মাঝখানে ভেরিয়েবলগুলি ঘোষণা করা ঠিক আছে (ঠিক সি ++ এর মতো), যার অর্থ প্রথম দিকটি কেবলমাত্র নির্দিষ্ট কিছু পরিস্থিতিতে প্রয়োজন যখন প্রাথমিক অবস্থার ঘোষণার সময় জানা যায় না। (এটি সি ++ তেও প্রযোজ্য)।