داده ها: در زبان ++c شش نوع داده وجود دارد: char, int, float, double, void, bool .
کلماتی مثل signed, unsigned, long, short می توانند انواع جدیدی را ایجاد کنند.
منتها: هر ۴ نوع signed, unsigned, long, short می توانند با int به کار روند.
نوع char فقط با signed و unsigned به کار روند. و double نیز فقط با long می تواند استفاده شود. ۳ نوع دیگر با هیچ کدام از این ۴ کلمه به کار نمی روند.
در سیستم های ۱۶ بیتی int و short int فضای یکسانی (۲ بایت) اشغال می کنند و در سیستم های ۳۲ بیتی int و long int فضای یکسانی (۴ بایت) اشغال می کنند. در حقیقت نوع int بسته به کامپیوتر فضای ۲ یا ۴ بایت را اشغال می کند ولی نوع short int و long int بدون توجه به نوع کامپیوتر به ترتیب ۲ و ۴ بایت فضا اشغال می کنند.
long double (ده بایت) فقط ۲ بایت بیشتر از double (هشت بایت) فضا اشغال می کند ولی میزان دقت اعداد اعشاری را از ۱۵ رقم به ۱۹ رقم افزایش می دهد.
متغیرها:
اگر در اعلان متغیرها نامی بیشتر از ۳۱ کاراکتر به آنها داده شود تنها ۳۱ کاراکتر اول توسط سیستم در نظر گرفته میشود.
تا زمانی که به متغیرها مقداری نسبت داده نشود محتویات آن یک مقدار نامعلوم است نه صفر.
تبدیل انواع:
اگر در زبان ++C دو متغیر که هر کدام از یک نوع متفاوت می باشند( مثلا int , float) با هم در یک عبارت محاسباتی شرکت کنند مثلا (F+i) آنگاه به ناچار یکی از دو نوع باید به نوع دیگری تبدیل شود. همیشه در عبارات محاسباتی انواع کوچکتر به انواع بزرگتر تقسیم می شوند. مثلا اگر یکی از عملوندها long double باشد عملوند دیگر نیز به long double تبدیل می شود. سپس به ترتیب:
double
float
unsigned long int
long int
unsigned int
int.
نکته: توجه کنید که اگر یکی از عملوندها unsigned int و دیگری long int باشد ولی مقدار unsigned int نتواند توسط long int نمایش داده شود (این حالت در سیستم های ۳۲ بیتی اتفاق می افتد. چرا؟ یکم فکر کنید و به قسمت داده های همین پست مراجعه کنید!) هر دو عملوند به unsigned long int تبدیل می شوند.
نوع دیگر تبدیل زمانی اتفاق می افتد که نوعی از متغیرها به نوع دیگر نسبت داده شوند مثلا:
int x;
float y;
x=y;
این نوع تبدیل خطرناک است زیرا امکان دارد بخشی از اطلاعات از بین برود. همچنین در این نوع تبدیل هیج وقت نوع double به int تبدیل نمی شود بلکه باید ابتدا به float تبدیل شود و سپس به int تبدیل شود. در این نوع تبدیل وقتی یک نوع بزرگ را به یک نوع کوچک تبدیل می کنیم طلاعات بایت های سمت چپ (با ارزش) به ترتیب از بین می روند.
پی نوشت:
می خواهیم یک برنامه ساده بنویسیم که نشون بده کامپیوتر ما ۱۶ بیتی یا ۳۲ بیتی و تکلیف مارو مشخص کنه! این برنامه را به زبان C می نویسیم.
کد:
Include
Main()
{
Printf (%d,sizof(int)*8);
}
به همین سادگی!!!