مشخصات مقاله
-
1828
-
0.0
-
14860
-
0
-
0
انواع داده ای در C++
انواع داده ای در ++C
برنامه نویس، در طول توسعه ی پروژه، طبیعتا می بایست انواع اطلاعات و داده ها (از نوع مختلف) را در متغیرهایی از نوع متفاوت ذخیره کند. به فضایی در حافظه که برای ذخیره دادهها کنار گذاشته شده است، متغیر یا variable میگویند. به بیان دیگر متغیر عبارت است از میزان فضایی در حافظه که بر اساس نوع اطلاعات مورد نظر، جهت نگهداری و ذخیره ی آن اطلاعات تخصیص می یابد. زمانی که برنامه نویس یک متغیر جدید اعلان می کند، در واقع یک بخشی از فضای حافظه، با توجه به نوع داده هایی که قرار است ذخیره شود، به آن متغیر اختصاص می یابد.
ممکن است برنامه نویس لازم داشته باشد مقداری از نوع character، wide character، integer، (ممیز شناور) floating point، double floating point، (بولی) Boolean را در متغیر و در حقیقت آن فضای رزرو شده، ذخیره نماید. سیستم عامل بر اساس نوع داده ای متغیر، حافظه تخصیص داده و تصمیم می گیرد که چه مقداری قابلیت ذخیره در آن میزان فضای درنظر گرفته شده را دارد.
انواع داده ای اولیه و درون ساخته در ++C (Primitive Built-in Type)
++C انواع داده ای درون ساخته و اختصاصی (user-defined) در اختیار توسعه دهنده قرار می دهد. در زیر جدولی مشاهده می کنید که 7 نوع داده ای بسیار پرکاربرد ++C را معرفی می کند:
می توان با استفاده از ویرایشگرهای نوع (modifier) که در ذیل عنوان شده، تعدادی از انواع داده ای اصلی را اصلاح کرده و type ها متفاوتی خلق کرد:
- signed (علامت دار)
- unsigned (بدون علامت)
- short (عدد صحیح که حافظه ی کمتری اشغال می کند)
- long (عدد صحیح که حافظه ی بیشتری نسبت به short اشغال می کند)
جدول زیر نوع متغیر، میزان حافظه ای که جهت ذخیره ی مقدار اشغال می کند و اینکه سقف و حداقل مقداری که در هر نوع قابل نگهداری می باشد را ذکر می کند:
لازم به ذکر است میزان فضایی که انواع داده ای قید شده در جدول بالا در حافظه اشغال می کنند، ممکن است بر اساس نوع کامپایلر و سیستم مورد استفاده، کمی متفاوت باشد.
در زیر، نمونه کدی را مشاهده می کنید که اندازه ی صحیح و میزان حافظه ای که انواع داده ای به خود اختصاص می دهند را در نمایشگر چاپ می کند:
#includeusing 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; }
همان طور که از مثال مشاهده می کنید، داخل بدنه ی متد main()، هر دستور با endl خاتمه می یابد که عملا یک خط جدید ایجاد می نماید. عملگر >> همزمان چندین مقدار را به نمایشگر پاس می دهد.
همچنین از متد sizeof() استفاده شده که میزان حافظه ی اشغال شده (طول بایت) توسط هر یک از انواع داده ای را برمی گرداند.
زمانی که کد ترجمه و اجرا می شود، خروجی آن به صورت زیر خواهد بود. البته ممکن است خروجی، با توجه به سیستم میزبان، کمی فرق کند:
Size of char : 1 Size of int : 4 Size of short int : 2 Size of long int : 8 Size of float : 4 Size of double : 8 Size of wchar_t : 4
تعریف اسم جدید برای نوع داده ای موجود (استفاده از کلیدواژه ی typedef)
می توانید با استفاده از کلیدواژه ی typedef، یک اسم جدید برای نوع داده ای موجود تعریف نمایید. در زیر نحوه ی استفاده از کلیدواژه ی مزبور را جهت تخصیص اسم جدید به نوع از پیش موجود مشاهده می کنید:
typedef type newname;
دستور زیر به کامپایلر اعلان می کند که feet اسم دیگری برای نوع داده ای int می باشد:
typedef int feet;
حال، تعریف زیر یک متغیر مجاز و کاملا معتبر از نوع داده ای عدد صحیح که به طور موقت feet نام گذاری شده، ایجاد می کند و اسم آن را distance انتخاب می نماید:
feet distance;
نوع داده ای Enum (نوع شمارشی)
نوع enum یا شمارشی به منظور تعریف مقادیر ثابت قابل شمارش بکار می رود. enumeration یک نوع اختصاصی (user-defined) است که توسعه دهنده تعریف کرده و از تعدادی ثابت از نوع عدد صحیح تشکیل شده که هر یک تحت عنوان enumerator شناخته می شود.
به منظور تعریف یک enumeration، لازم است ابتدا کلیدواژه ی enum را درج نمایید. ساختار کلی و نحوی تعریف یک نوع شمارشی به صورت زیر می باشد:
enum enum-name { list of names } var-list;
در اینجا enum-name اسم نوع enumeration می باشد. اسم ها در لیست توسط ویرگول از هم جدا می شوند.
به طور مثال، کد زیر یک نوع شمارشی به نام color و یک متغیر به نام C از نوع color ایجاد کرده است. سپس مقدار "blue" داخل متغیر C قرار داده می شود.
enum color { red, green, blue } c;
c = blue;
به طور پیش فرض، مقدار اولین آیتم در ساختمان enum، 0 و مقدار دومین آیتم برابر 2 و همین طور تا پایان یک واحد افزایش می یابد. در صورت تمایل، توسعه دهنده می تواند به آیتم دلخواه داخل ساختمان enum، مقدار مورد نظر را تخصیص دهد. برای مثال، در ساختمان enumeration زیر، مقدار 5 به آیتم green تخصیص یافته است.
enum color { red, green=5, blue };
در این مثال، blue مقداری برابر 6 خواهد داشت چرا که آیتم قبلی آن، green، بر روی 5 تنظیم شده و همان طور که در بالا به آن اشاره شد، مقدار هر آیتم در ساختمان به اندازه ی یک واحد افزایش می یابد.