انواع داده ها در C++
برای برنامه نویسی در هر زبانی، شما باید از متغیرهای مختلفی برای ذخیرهسازی اطلاعات مختلف استفاده کنید. منظور از متغیر، محلی از حافظه است که مقداری در آن ذخیره می شود. یعنی هنگامی که شما متغیری تعریف می کنید، بخشی از حافظه را اشغال می کنید.
ممکن است بخواهید اطلاعاتی از انواع داده های مختلف مانند کاراکتر، رشته، عدد صحیح، عدد اعشاری، مقادیر بولی و غیره را ذخیره کنید. سیستم عامل با توجه به نوع متغیر، مقدار حافظه ای اختصاصی به آن را مشخص می کند.
انواع داده اولیه در C++
در جدول زیر لیستی از هفت نوع داده اصلی در زبان برنامه نویسی C++ را مشاهده می کنید:
نوع | کلمه کلیدی |
بولی | bool |
کاراکتر | char |
عدد صحیح | int |
اعدا اعشاری | float |
اعداد اعشاری بزرگ | double |
بدون مقدار | void |
کاراکتر بزرگ | wchar_t |
تعدادی از نوع داده های اصلی را می توان با استفاده از modifier های زیر اصلاح کرد:
- signed
- unsigned
- short
- long
در جدول زیر نوع متغیر را به همراه مقدار حافظه ای که اشغال می کند و حداکثر و حداقل مقداری که می تواند داشته باشد را مشاهده می کنید:
نوع | تعداد بیت | محدوده |
char | ۱byte | -۱۲۷ to 127 or 0 to 255 |
unsigned char | ۱byte | ۰ to 255 |
signed char | ۱byte | -۱۲۷ to 127 |
int | ۴bytes | -۲۱۴۷۴۸۳۶۴۸ to 2147483647 |
unsigned int | ۴bytes | ۰ to 4294967295 |
signed int | ۴bytes | -۲۱۴۷۴۸۳۶۴۸ to 2147483647 |
short int | ۲bytes | -۳۲۷۶۸ to 32767 |
unsigned short int | Range | ۰ to 65,535 |
signed short int | Range | -۳۲۷۶۸ to 32767 |
long int | ۴bytes | -۲,۱۴۷,۴۸۳,۶۴۸ to 2,147,483,647 |
signed long int | ۴bytes | same as long int |
unsigned long int | ۴bytes | ۰ to 4,294,967,295 |
float | ۴bytes | +/- ۳٫۴e +/- 38 (~7 digits) |
double | ۸bytes | +/- ۱٫۷e +/- 308 (~15 digits) |
long double | ۱۶bytes | +/- ۱٫۷e +/- 308 (~15 digits) |
wchar_t | ۲ or 4 bytes | ۱ wide character |
بسته به کامپایلر و کامپیوتر شما، اندازه ای که در جدول بالا برای متغیرها گفته شده است، ممکن است متفاوت باشد. اگر کد زیر را توسط کامپایلر سی پلاس پلاس اجرا کنید، اندازه صحیح هر کدام از انواع داده ها را سیستم خود مشاهده خواهید کرد.
1 2 3 4 5 6 7 8 9 10 11 12 | #include <iostream> using namespace std; int main() { cout << "Size of char : " << sizeof(char) << endl; cout << "Size of int : " << sizeof(int) << endl; cout << "Size of short int : " << sizeof(short int) << endl; cout << "Size of long int : " << sizeof(long int) << endl; cout << "Size of float : " << sizeof(float) << endl; cout << "Size of double : " << sizeof(double) << endl; cout << "Size of wchar_t : " << sizeof(wchar_t) << endl; return 0; } |
در مثال بالا از endl استفاده شده است که بعد از هر خطی که چاپ می شود، یک کاراکتر خط جدید (new-line) وارد می کند و از عملگر << برای انتقال مقادیر به صفحه نمایش استفاده می شود. همچنین عملگر sizeof() نیز برای گرفتن اندازه انواع داده ها مورد استفاده قرار می گیرد.
هنگامی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید می کند که می تواند در کامپیوترهای مختلف، متفاوت باشد.
1 2 3 4 5 6 7 | Size of char : 1 Size of int : 4 Size of short int : 2 Size of long int : 4 Size of float : 4 Size of double : 8 Size of wchar_t : 4 |
اعلان typedef
با استفاده از typedef می توانید یک نام جدید برای یک نوع داده موجود تعریف کنید. مثلا برای نوع داده int نام integer را تعریف کنید. مثال زیر نحوه استفاده از typedef را نشان می دهد.
1 | typedef type newname; |
مثال زیر به کامپایلر می گوید که integer یک نام دیگر برای int است.
1 | typedef int integer; |
و اکنون می توانید از نامی که برای int تعریف کردید، به صورت زیر استفاده کنید.
1 | integer myNumber = 15; |
انواع داده شمارشی (enum)
نوع شمارشی برای تعریف مقادیر قابل شمارش استفاده می شود. enum یک نوع داده user-defined می باشد. یعنی توسط کاربر و با نام اختیاری تعریف می شود. هر enum از تعدادی شمارنده (enumerator) تشکیل می شود.
برای تعریف یک نوع داده شمارشی، از کلمه کلیدی enum استفاده می شود. در زیر چگونگی تعریف یک نوع شمارشی را مشاهده می کنید.
1 | enum enum-name { list of names } var-list; |
مثال زیر نحوه تعریف و استفاده از یک enum را نشان می دهد.
1 2 | enum color { red, green, blue } c; c = blue; |
به طور پیش فرض، مقدار نام اول ۰ است، نام دوم دارای مقدار ۱ است، و سوم دارای مقدار ۲ و غیره است. اما با افزودن یک مقداردهی اولیه، می توانید یک نام، یک مقدار خاص بدهید. به عنوان مثال، در شمارش زیر سبز مقدار ۵ خواهد داشت.
به طور پیشفرض مقدار اولین شمارنده ۰، دومین شمارنده ۱ سومین شمارنده ۲ … nمین شمارنده n-1 می باشد. اما می توان با افزودن یک مقدار اولیه این ترتیب را تغییر داد. مانند مثال زیر:
1 | enum color { red, green = 5, blue }; |
هیچ نظری ثبت نشده است