انواع داده ها در زبان C
انواع داده ها در زبان برنامه نویسی C به سیستم گسترده ای که برای اعلان متغییرها یا توابع مختلف استفاده می شود، مراجعه می کند. نوع متغیر میزان فضای که باید برای ذخیره داده ها اشغال شود، را تعیین می کند.
انواع داده ها در زبان C
انواع داده ها در زبان C را می توان به صورت زیر دسته بندی کرد:
ردیف | نوع و توضیحات |
1 | انواع اصلی آن ها نوع محاسباتی هستند و بیشتر به موارد زیر تقسیم می شوند: · انواع صحیح (Integer) · انواع اعشاری (Float) |
2 | انواع شمارشی این ها هم از نوع محاسباتی هستند و برای تعریف متغیرهایی استفاده می شوند که می توانند در طول اجرای برنامه مقادیر عددی گسسته خاصی داشته باشند. |
3 | نوع void این نوع نشان می دهد که هیچ مقداری در دسترس نیست. |
4 | انواع مشتق شده عبارتند از: · انواع اشاره گر · انواع آرایه ها · انواع ساختارها · انواع union ها · انواع تابع |
انواع صحیح (Integer Types)
در جدول زیر، جزئیات مربوط به انواع صحیح (نوع، اندازه ای که در حافظه اشغال می کنند و رنج مقدار دهی) را مشاهده می کنید:
نوع | اندازه ذخیره سازی | محدوده مقدار دهی |
char | 1 byte | -128 to 127 or 0 to 255 |
unsigned char | 1 byte | 0 to 255 |
signed char | 1 byte | -128 to 127 |
int | 2 or 4 bytes | -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647 |
unsigned int | 2 or 4 bytes | 0 to 65,535 or 0 to 4,294,967,295 |
short | 2 bytes | -32,768 to 32,767 |
unsigned short | 2 bytes | 0 to 65,535 |
long | 4 bytes | -2,147,483,648 to 2,147,483,647 |
unsigned long | 4 bytes | 0 to 4,294,967,295 |
به منظور دریافت اندازه دقیق یک نوع یا یک متغیر در یک پلتفرم خاص، می توانید از عملگر sizeof استفاده کنید. این عملگر یک نوع یا متغیر به عنوان پارامتر می گیرد و اندازه ای که این نوع یا متغیر در حافظه اشغال می کند را به عنوان خروجی و بر حسب بایت برمیگرداند. مثال زیر نحوه استفاده از آن را نشان می دهد:
1 2 3 4 5 6 | #include <stdio.h> #include <limits.h> int main() { printf("Storage size for int : %lu \n", sizeof(int)); return 0; } |
هنگامی کد بالا توسط کامپایلر زبان C کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 | Storage size for int : 4 |
انواع اعشاری (Floating-Point Types)
در جدول زیر، جزئیات مربوط به انواع اعشاری (نوع، اندازه ای که در حافظه اشغال می کنند، رنج مقدار دهی و دقت) را مشاهده می کنید:
نوع | اندازه ذخیرهسازی | محدوده مقدار دهی | دقت |
float | 4 byte | 1.2E-38 to 3.4E+38 | 6 رفم اعشار |
double | 8 byte | 2.3E-308 to 1.7E+308 | 15 رقم اعشار |
long double | 16 byte | 3.4E-4932 to 1.1E+4932 | 19 رقم اعشار |
مثال زیر میزان فضای ذخیره سازی یک نوع float، کمترین و بیشترن مقدار و دقت آن را با استفاده از ماکروهای تعریف شده در هدر فایل float.h نشان می دهد:
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> #include <float.h> int main() { printf("Storage size for float : %lu \n", sizeof(float)); printf("Minimum float positive value: %E\n", FLT_MIN ); printf("Maximum float positive value: %E\n", FLT_MAX ); printf("Precision value: %d\n", FLT_DIG ); return 0; } |
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
1 2 3 4 | Storage size for float : 4 Minimum float positive value: 1.175494E-38 Maximum float positive value: 3.402823E+38 Precision value: 6 |
نوع void
نوع void نشان دهنده این است که هیچ مقداری در دسترس نیست. از این نوع در سه حالت زیر استفاده می شود:
ردیف | نوع و توضیحات |
1 | تابع مقدار void باز میگرداند توابع زیادی در زبان برنامه نویسی C وجود دارند که هیج مقداری را باز نمی گردانند. تابعی را که هیچ مقدار بازگشتی نداشته باشد، void می نامند. مثال: void exit(int status); |
2 | تابع با آرگومان void توابع زیادی در زبان C وجود دارند که هیچ آرگومان یا پارامتر ورودیی نمی گیرند. مثال: int rand(void); |
3 | اشاره گرها به void اشاره گر به نوع void نشان دهنده آدرس یک شیء است، اما نه نوع آن شیء. برای مثال تابع تخصیص حافظه void * malloc(size_t size); یک اشاره گر به void برمیگرداند که می تواند به هر نوع داده ای دیگری تبدیل (Cast) شود. |
هیچ نظری ثبت نشده است