انواع داده ها در C++
برای برنامه نویسی در هر زبانی، شما باید از متغیرهای مختلفی برای ذخیرهسازی اطلاعات مختلف استفاده کنید. منظور از متغیر، محلی از حافظه است که مقداری در آن ذخیره می شود. یعنی هنگامی که شما متغیری تعریف می کنید، بخشی از حافظه را اشغال می کنید.
ممکن است بخواهید اطلاعاتی از انواع داده های مختلف مانند کاراکتر، رشته، عدد صحیح، عدد اعشاری، مقادیر بولی و غیره را ذخیره کنید. سیستم عامل با توجه به نوع متغیر، مقدار حافظه ای اختصاصی به آن را مشخص می کند.
انواع داده اولیه در C++
در جدول زیر لیستی از هفت نوع داده اصلی در زبان برنامه نویسی C++ را مشاهده می کنید:
نوع | کلمه کلیدی |
بولی | bool |
کاراکتر | char |
عدد صحیح | int |
اعدا اعشاری | float |
اعداد اعشاری بزرگ | double |
بدون مقدار | void |
کاراکتر بزرگ | wchar_t |
تعدادی از نوع داده های اصلی را می توان با استفاده از modifier های زیر اصلاح کرد:
- signed
- unsigned
- short
- long
در جدول زیر نوع متغیر را به همراه مقدار حافظه ای که اشغال می کند و حداکثر و حداقل مقداری که می تواند داشته باشد را مشاهده می کنید:
نوع | تعداد بیت | محدوده |
char | 1byte | -127 to 127 or 0 to 255 |
unsigned char | 1byte | 0 to 255 |
signed char | 1byte | -127 to 127 |
int | 4bytes | -2147483648 to 2147483647 |
unsigned int | 4bytes | 0 to 4294967295 |
signed int | 4bytes | -2147483648 to 2147483647 |
short int | 2bytes | -32768 to 32767 |
unsigned short int | Range | 0 to 65,535 |
signed short int | Range | -32768 to 32767 |
long int | 4bytes | -2,147,483,648 to 2,147,483,647 |
signed long int | 4bytes | same as long int |
unsigned long int | 4bytes | 0 to 4,294,967,295 |
float | 4bytes | +/- 3.4e +/- 38 (~7 digits) |
double | 8bytes | +/- 1.7e +/- 308 (~15 digits) |
long double | 16bytes | +/- 1.7e +/- 308 (~15 digits) |
wchar_t | 2 or 4 bytes | 1 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; |
به طور پیش فرض، مقدار نام اول 0 است، نام دوم دارای مقدار 1 است، و سوم دارای مقدار 2 و غیره است. اما با افزودن یک مقداردهی اولیه، می توانید یک نام، یک مقدار خاص بدهید. به عنوان مثال، در شمارش زیر سبز مقدار 5 خواهد داشت.
به طور پیشفرض مقدار اولین شمارنده 0، دومین شمارنده 1 سومین شمارنده 2 … nمین شمارنده n-1 می باشد. اما می توان با افزودن یک مقدار اولیه این ترتیب را تغییر داد. مانند مثال زیر:
1 | enum color { red, green = 5, blue }; |
هیچ نظری ثبت نشده است