প্রোগ্রামিং সি — ৪ঃ ডেটা টাইপস
আগের পর্বে আমরা শিখেছিলাম যে, কিভাবে ভেরিয়েবল ঘোষণা করা যায় এবং সেটা তে কোন ভ্যালু সংরক্ষন করা যায়। তবে একটা বিষয় দেখেছি কিন্তু মাথার উপর দিয়ে গেছে। মনে আছে কোন বিষয় টা নিয়ে কথা বলছি?
সি প্রোগ্রামিংয়ে ভেরিয়েবল নামের আগে ডেটা টাইপ বলে দিতে হয়। এবার মনে পড়েছে নিশ্চয়। আচ্ছা এই ডেটা টাইপ টা কি?
আমরা যে ডেটা বা ভ্যালু গুলো ভেরিয়েবলে রাখবো সেটা কি ধরণের ডেটা এই বিষয়টা সি প্রোগ্রামিং একা একা বুঝে না। তাকে বলে দেয়া লাগে।
যেমন ধরুনঃ আমার বয়স রাখার জন্য একটা ভেরিয়েবল নিলাম তাইলে আমার বয়স টা কি ধরণের ডেটা? অবশ্যই এটা একটা সংখ্যা। সংখ্যা আবার কয়েক ধরণের হতে পারে। দশমিক সংখ্যা (৩.১২, ৪.৬৫…), পূর্ণ সংখ্যা (১, ২, ৩…)। আমরা বয়স মূলত integer নাম্বারে বলে থাকি। তাই আমরা একটা int
টাইপ ভেরিয়েবল age
নিবো।
int age;
এভাবে অন্যান্য ডেটা নিয়ে কাজ করার জন্য বেশ কয়েকটি ডেটা টাইপ রয়েছে।
সি প্রোগ্রামিংয়ে ব্যাসিক ডেটা টাইপস
সি প্রোগ্রামিংয়ে মূলত ব্যাসিক ডেটা টাইপ ৪ টিঃ
char
int
float
double
CHARACTER (char) ডেটা টাইপ
কোন একটি বর্ণ (A, a, B, c, E…) কে ধারণ করার জন্য char
ডেটা টাইপ ব্যবহার করা হয়। char
ডেটা টাইপ কেবল মাত্র এক সাথে একটি বর্ণ ধারণ করতে পারে এবং মেমরিতে ১ বাইট জায়গা দখল করে। ক্যারেক্টার সমূহের ASCII ভ্যালু বিবেচনায় char
ডেটা টাইপ কেবল মাত্র -১২৮ থেকে ১২৭ পর্যন্ত ভ্যালু সমূহ সংরক্ষন করতে সক্ষম।
আমরা উপরের উদাহরণে একটু খেয়াল করে দেখি, ভেরিয়েবলে ভ্যালু রাখার জন্য সিঙ্গেল কোটেশন ব্যবহার করা হচ্ছে। সি তে সিঙ্গেল কোটেশন এবং ডাবল কোটেশন ভিন্ন ভিন্ন অর্থ বহন করে।
সিঙ্গেল কোটেশন ব্যবহার করে ক্যারেক্টার টাইপ ডেটা রাখা হয় অপর দিকে ডাবল কোটেশন ব্যবহার করে স্ট্রিং টাইপের ডেটা রাখা হয়। সামনে আমরা স্ট্রিং নিয়ে বিস্তারিত আলোচনা করবো ইনশাআল্লাহ।
আরেকটু খেয়াল করলে দেখতে পাবো যে, ক্যারেক্টার টাইপের ডেটা প্রিন্ট করার জন্য %c
প্রিন্ট ফরম্যাট/প্লেসহোল্ডার ক্যারেক্টার ব্যবহার করা হয়েছে, এটা মনে রাখতে হবে।
সি এর কমন প্লেসহোল্ডার ক্যারেক্টার সমূহঃ
INTEGER (int) ডেটা টাইপ
আমরা ইতিমধ্যে বয়স লিখতে int
ডেটা টাইপ ব্যবহার করেছি। int
ডেটা টাইপ পূর্ণ সংখ্যা (১, ২, ৩…) ধারণ করার জন্য ব্যবহার করা হয়। int
ডেটা টাইপ কম্পিউটার মেমরিতে ২ বাইট পরিমাণ জায়গা দখল করে এবং এর ভ্যালু রেঞ্জ হচ্ছে — 2,147,483,648 থেকে 2,147,483,647 পর্যন্ত।
#include <stdio.h>int main(void) {
int five = 5; // valid
printf("%d\n", five); // 5
int nine = '9'; // variable declaration is valid
printf("%d\n", nine); // 57 this is the ASCII value of 9 int min = -2147483648; // valid min value
printf("%d\n", min); // -2147483648; int belowMin = -2147483649;
// implicit conversion from 'long' to 'int'
// changes value from -2147483649 to 2147483647
printf("%d\n", belowMin);
// here c done an implicit conversion
// and change the value to 2147483647
int max = 2147483647; // valid max value
printf("%d\n", max); // 2147483647 int aboveMax = 21474836499;
// implicit conversion from 'long' to 'int'
// changes value from 21474836499 to 19 printf("%d\n", aboveMax);
// here c done an implicit conversion and change the value to 19
return 0;
}
FLOAT (float) ডেটা টাইপ
দশমিক (৫.৬, ৭.৮…) সংখ্যা গুলো নিয়ে কাজ করার জন্য সি প্রোগ্রামিংয়ে ২ ধরণের ডেটা টাইপ ব্যবহার করা হয়। দশমিক সংখ্যা ৬ ঘর পর্যন্ত সংখ্যা গুলো নিয়ে কাজ করার জন্য float
ডেটা টাইপ ব্যবহার করা হয়। float
ডেটা টাইপ কম্পিউটার মেমরিতে 4 বাইট জায়গা দখল করে এবং এর রেঞ্জ 1E-37 থেকে 1E+37 পর্যন্ত।
float
ডেটা টাইপের সম্পর্কিত তথ্যঃ
এখানে float
হেডার লাইব্রেরী ব্যবহার করে float
ডেটা টাইপের বেশ কিছু ইনফো দেখানো হয়েছে। এই বিষয়টা এখন বুঝতে না পারলে এড়িয়ে যান। আমরা ইনশাআল্লাহ অন্য এক আর্টিকেলে এই বিষয়ে আলোচনা করবো।
DOUBLE (double) ডেটা টাইপ
দশমিকের পর ছয় সংখ্যার বেশি ডিজিট নিয়ে কাজ করার জন্য double
ডেটা টাইপ ব্যবহার করা হয়। ডাবল ডেটা টাইপ কম্পিউটার মেমরিতে ৮ বাইট জায়গা দখল করে এবং এতে 2.3E-308 থেকে1.7E+308 পর্যন্ত ভ্যালু রাখা যায়।
উপরে বর্ণিত চার ধরণের ডেটা টাইপের পাশাপাশি আরেকটি ডেটা টাইপ আমাদের চোখে পড়েছে নিশ্চয়। সেটা হচ্ছে — ভয়েড (void) ডেটা টাইপ।
সি প্রোগ্রামিংয়ে শুধু ভেরিয়েবল ঘোষণা করার সময় ছাড়াও আরো বেশ কয়েক জায়গায় ডেটা টাইপ বাধ্যতামূলক। তার মধ্যে সবচেয়ে ইম্পরট্যান্ট একটা জায়গা হচ্ছে ফাংশন। সি প্রোগ্রামিংয়ে যেকোন ফাংশন লেখার সময় সেই ফাংশন কি ধরণের ডেটা রিটার্ন করবে সেটা বলে দিতে হয়।চিন্তিত হওয়ার কিছু নাই। ফাংশন নিয়ে সতন্ত্র আরেকটি আর্টিকেল থাকবে সামনে ইনশাআল্লাহ।
তবে আমরা শুরু থেকেই মেইন ফাংশন টা জেনে না জেনে ব্যবহার করছি এবং এই মেইন ফাংশন কোন ডেটা রিটার্ন করছে না সেজন্য void টাইপ ব্যবহার করছি।
আজ এই পর্যন্ত। কথা হবে নেক্সট পর্বে।
আমার সম্পর্কেঃ
আমি মোঃ জামাল উদ্দিন, প্রতিনিয়ত শিখছি এবং যা কিছু শিখছি তা আপনাদের সাথে লেখালেখির মাধ্যমে শেয়ার করার চেষ্টা করছি। কাজ করছি সফটওয়্যার ডেভেলপার হিসেবে। আমার সম্পর্কে বিস্তারিত জানতে ভিজিট করুন https://jaamaalxyz.github.io ওয়েবসাইটে এবং প্রায় সবগুলো জনপ্রিয় সোশ্যাল সাইটে আমাকে পাবেন jaamaalxyz ইউজারনামে।