کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

انواع داده ای در C++

انواع داده ای در ++C

برنامه نویس، در طول توسعه ی پروژه، طبیعتا می بایست انواع اطلاعات و داده ها (از نوع مختلف) را در متغیرهایی از نوع متفاوت ذخیره کند. به فضایی در حافظه که برای ذخیره داده‌ها کنار گذاشته شده است، متغیر یا variable می‌گویند. به بیان دیگر متغیر عبارت است از میزان فضایی در حافظه که بر اساس نوع اطلاعات مورد نظر، جهت نگهداری و ذخیره ی آن اطلاعات تخصیص می یابد. زمانی که برنامه نویس یک متغیر جدید اعلان می کند، در واقع یک بخشی از فضای حافظه، با توجه به نوع داده هایی که قرار است ذخیره شود، به آن متغیر اختصاص می یابد.
ممکن است برنامه نویس لازم داشته باشد مقداری از نوع character، wide character، integer، (ممیز شناور) floating point، double floating point، (بولی) Boolean را در متغیر و در حقیقت آن فضای رزرو شده، ذخیره نماید. سیستم عامل بر اساس نوع داده ای متغیر، حافظه تخصیص داده و تصمیم می گیرد که چه مقداری قابلیت ذخیره در آن میزان فضای درنظر گرفته شده را دارد.


انواع داده ای اولیه و درون ساخته در ++C (Primitive Built-in Type)

++C انواع داده ای درون ساخته و اختصاصی (user-defined) در اختیار توسعه دهنده قرار می دهد. در زیر جدولی مشاهده می کنید که 7 نوع داده ای بسیار پرکاربرد ++C را معرفی می کند:


کلیدواژه
نوع داده ای
bool
Boolean
char
Character
int
Integer
float
Floating point
double
Double floating point
void
Valueless
wchar_t
Wide character

می توان با استفاده از ویرایشگرهای نوع (modifier) که در ذیل عنوان شده، تعدادی از انواع داده ای اصلی را اصلاح کرده و type ها متفاوتی خلق کرد:


  • signed (علامت دار)
  • unsigned (بدون علامت)
  • short (عدد صحیح که حافظه ی کمتری اشغال می کند)
  • long (عدد صحیح که حافظه ی بیشتری نسبت به short اشغال می کند)

جدول زیر نوع متغیر، میزان حافظه ای که جهت ذخیره ی مقدار اشغال می کند و اینکه سقف و حداقل مقداری که در هر نوع قابل نگهداری می باشد را ذکر می کند:


بازه
میزان فضایی که در حافظه اشغال می کند
نوع داده ای
-128 to 127 or 0 to 255
1byte
char
0 to 255
1byte
unsigned char
-128 to 127
1byte
signed char
-2147483648 to 2147483647
4bytes
int
0 to 4294967295
4bytes
unsigned int
-2147483648 to 2147483647
4bytes
signed int
-32768 to 32767
2bytes
short int
0 to 65,535
2bytes
unsigned short int
-32768 to 32767
2bytes
signed short int
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
8bytes
long int
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
8bytes
signed long int
0 to 18,446,744,073,709,551,615
8bytes
unsigned long int
+/- 3.4e +/- 38 (~7 digits)
4bytes
float
+/- 1.7e +/- 308 (~15 digits)
8bytes
double
+/- 1.7e +/- 308 (~15 digits)
8bytes
long double
1 wide character
2 or 4 bytes
wchar_t

لازم به ذکر است میزان فضایی که انواع داده ای قید شده در جدول بالا در حافظه اشغال می کنند، ممکن است بر اساس نوع کامپایلر و سیستم مورد استفاده، کمی متفاوت باشد.
در زیر، نمونه کدی را مشاهده می کنید که اندازه ی صحیح و میزان حافظه ای که انواع داده ای به خود اختصاص می دهند را در نمایشگر چاپ می کند:


#include 
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;
}

همان طور که از مثال مشاهده می کنید، داخل بدنه ی متد 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 تنظیم شده و همان طور که در بالا به آن اشاره شد، مقدار هر آیتم در ساختمان به اندازه ی یک واحد افزایش می یابد.

1396/04/08 14860 1828
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...