هنگام نوشتن برنامه به هر زبانی، باید از متغیرهای مختلفی برای ذخیره اطلاعات استفاده کنیم. متغیرها چیزی جز فضای رزرو شده در حافظه برای ذخیره مقادیر نیستند.بنابراین هنگامی که یک متغیر ایجاد می کنید فضایی از حافظه را رزرو خواهید کرد.
ممکن است بخواهید اطلاعاتی از نوع داده های مختلف مانند کارکتر، کارکتر پهن(wide character)، عدد صحیح، ممیز شناور، ممیز شناور مضاعف، بولی و … را ذخیره کنید. براساس نوع داده متغیر، سیستم عامل به آن فضا اختصاص داده و تصمیم می گیرد که چه چیزی می تواند در فضای رزرو شده ذخیره شود.
نوع داده های داخلی اصلی(Primitive Built-in Types)
++C برای برنامه نویسان طبقات غنی از نوع داده های داخلی در کنار نوع داده های تعریف شده توسط کاربر فراهم می کند.جدول زیر هفت نوع داده اصلی ++C را نشان می دهد.
نوع | کلیدواژه |
Boolean (بولی) | bool |
Character(کارکتر) | char |
Integer(عدد صحیح) | int |
Floating point(ممیزشناور) | float |
Double floating point(ممیز شناور مضاعف) | double |
هیچ(بدون مقدار) | void |
Wide character(کارکتر عریض) | wchar_t |
برخی از این نوع داده ها را می توان با استفاده از یک یا چند ویرایشگرنوع(type modifier) تغییر داد
- signed
- unsigned
- short
- long
جدول زیر نوع داده، فضایی که از حافظه اشغال می کند، و حداکثر مقداری که می تواند ذخیره کند را نشان می دهد.
نوع | فضای متوسط | رنج متوسط |
char | 1بایت | -127 to 127 or 0 to 255 |
unsigned char | 1بایت | 0 to 255 |
signed char | 1بایت | -127 to 127 |
int | 4بایت | -2147483648 to 2147483647 |
unsigned int | 4بایت | 0 to 4294967295 |
signed int | 4بایت | -2147483648 to 2147483647 |
short int | 2بایت | -32768 to 32767 |
unsigned short int | 2بایت | 0 to 65,535 |
signed short int | 2بایت | -32768 to 32767 |
long int | 8بایت | -2,147,483,648 to 2,147,483,647 |
signed long int | 8بایت | به اندازه long int |
unsigned long int | 8بایت | 0 to 4,294,967,295 |
long long int | 8بایت | -(2^63) to (2^63)-1 |
unsigned long long int | 8bytes | 0 to 18,446,744,073,709,551,615 |
float | 4بایت | |
double | 8بایت | |
long double | 12بایت | |
wchar_t | 2 یا 4 بایت | 1 wide character |
بسته به کامپایلر و کامپیوتری که استفاده می کنید، اندازه داده ها ممکن است متفاوت از جدول بالا باشد.
مثال زیر اندازه صحیح نوع داده ای مختلف روی کامیپوترتان را چاپ می کند
#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 استفاده شده که اندازه یک متغیر را برمی گرداند.
وقتی کد فوق کامپایل و اجرا گردید، نتیجه زیر تولید خواهد شد. این نتیجه از یک ماشین به ماشین دیگر ممکن است متفاوت باشد.
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 می توانید یک نام جدید برای یک نوع داده ایجاد کنید. مثال ساده ای از ساختار typedef در زیر آمده است:
typedef type newname;
برای مثال، کد زیر به کامپایلر اعلام می کند که نام جدیدی برای int درنظر بگیرد
typedef int feet;
اکنون، قطعه کد زیر کاملاً صحیح بوده و یک متغیر صحیح به نام distance ایجاد می کند
feet distance;
نوع داده شمارشی(Enumerated Types)
نوع داده شمارشی، یک نام دلخواه و تعدادی شناسه دلخواه اعلان کرده که می توان از آنها به عنوان مقدار استفاده کرد. هر شماره یک مقدار ثابت بوده که نوع آن شمارشی(enumeration) است.
برای ایجاد یک نوع داده شمارشی باید از کلیدواژه enum استفاده کرد. شکل عمومی نوع داده شمارشی به صورت زیر است
enum enum-name { list of names } var-list;
enum-name نام نوع داده شمارشی است. لیست نامها با کاما از هم جدا می شوند.
برای مثال، کد زیر ، یک نوع داده شمارشی به نام colors ایجاد می کند و متغیر c از آن نوع را اعلان می کند. در نهایت، به c مقدار “blue” اختصاص داده می شود.
enum color { red, green, blue } c; c = blue;
به صورت پیش فرض، اولین نام مقدار 0 ، دومین نام مقدار 1، سومین نام مقدار 2 و به همین ترتیب ادامه خواهد یافت.اما می توان با اضافه کردن یک مقدار اولیه، یک مقدار مشخص به هر نام اختصاص داد.برای مثال، در نوع داده شمارشی زیر، green مقدار 5 خواهد داشت.
enum color { red, green = 5, blue };
در اینجا، blue مقدار 6 خواهد داشت زیر مقدار هر نام، از مقدار نام قبلی به اضافه یک بدست خواهد آمد. خب الان که انواع داده در ++C بررسی کردیم در جلسه بعدی با ما همراه باشید تا انواع متغیرها را در ++C بررسی کنیم.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.