در این جلسه با انواع دادهها در زبان C آشنا میشویم و به بررسی کامل هر کدام از آنها میپردازیم.
نوعهای دادهها در زبان c اشاره به یک سیستم گسترده دارد که برای تعریف متغیرها یا توابع مختلف استفاده میشود. نوع متغیر تعیین میکند که چقدر فضای ذخیره سازی اشغال میکند و الگوی ذخیرهسازی آن چگونه است.
انواع دیتاتایپها در زبان C:
-
دیتاتایپهای اولیه:
انواع حسابی هستند و بیشتر به: (الف) انواع اعداد صحیح و (ب) انواع اعشاری طبقه بندی میشوند.
-
دیتاتایپهای Enumerated:
این نوع دیتاتایپ هم حسابی هستند، با این تفاوت که مقادیر صحیح گسسته را شامل میشود.
-
دیتاتایپهای خالی void:
برای برگرداندن یک مقدار خالی در یک تابع مورد استفاده قرار میگیرد.
-
دیتاتایپهای مشتق شده:
دیتاتایپهای مشتق شده، این موارد را شامل میشود: (الف) انواع اشارهگر ، (ب) انواع آرایه ، (ج) انواع دادههای ساختاریافته و (ه) انواع توابع.
نوع یک تابع را، مقداری که بازمیگرداند مشخص میکند. در بخش پایین نوعهای پایهای را بررسی میکنیم و در جلسات آینده به بقیه موارد میپردازیم.
-
اعداد صحیح(int – integer)
جدول زیر جزئیات انواع صحیح استاندارد با اندازه ذخیره سازی و محدوده مقادیر آنها را نمایش میدهد:
برای به دست آوردن اندازه دقیق یک نوع یا یک متغیر در یک زبان خاص، میتوانید از عملگرsizeof
استفاده کنید. عباراتsizeof (DataType)
اندازه ذخیره سازی شی یا نوع را به صورت بایت نشان میدهد. در بخش پایین مثالی برای بدست آوردن اندازه انواع مختلف را مشاهده میکنیم.#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("CHAR_BIT : %d\n", CHAR_BIT); printf("CHAR_MAX : %d\n", CHAR_MAX); printf("CHAR_MIN : %d\n", CHAR_MIN); printf("INT_MAX : %d\n", INT_MAX); printf("INT_MIN : %d\n", INT_MIN); printf("LONG_MAX : %ld\n", (long) LONG_MAX); printf("LONG_MIN : %ld\n", (long) LONG_MIN); printf("SCHAR_MAX : %d\n", SCHAR_MAX); printf("SCHAR_MIN : %d\n", SCHAR_MIN); printf("SHRT_MAX : %d\n", SHRT_MAX); printf("SHRT_MIN : %d\n", SHRT_MIN); printf("UCHAR_MAX : %d\n", UCHAR_MAX); printf("UINT_MAX : %u\n", (unsigned int) UINT_MAX); printf("ULONG_MAX : %lu\n", (unsigned long) ULONG_MAX); printf("USHRT_MAX : %d\n", (unsigned short) USHRT_MAX); return 0; }
وقتی سورسکد فوق را کامپایل و اجرا میکنید، نتیجه زیر را در لینوکس میبینید:
CHAR_BIT : 8 CHAR_MAX : 127 CHAR_MIN : -128 INT_MAX : 2147483647 INT_MIN : -2147483648 LONG_MAX : 9223372036854775807 LONG_MIN : -9223372036854775808 SCHAR_MAX : 127 SCHAR_MIN : -128 SHRT_MAX : 32767 SHRT_MIN : -32768 UCHAR_MAX : 255 UINT_MAX : 4294967295 ULONG_MAX : 18446744073709551615 USHRT_MAX : 65535
-
اعداد صحیح اعشاری(Floating-Point)
جدول زیر جزئیات انواع استاندارد صحیح اعشاری را با اندازه و محدوده ذخیره سازی و دقت آنها نمایش میدهد:
همچنین برای این نوع دادهای هم میتوان نتیجه را چنین به دست آورد:
#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <float.h> int main(int argc, char** argv) { printf("Storage size for float : %d \n", sizeof(float)); printf("FLT_MAX : %g\n", (float) FLT_MAX); printf("FLT_MIN : %g\n", (float) FLT_MIN); printf("-FLT_MAX : %g\n", (float) -FLT_MAX); printf("-FLT_MIN : %g\n", (float) -FLT_MIN); printf("DBL_MAX : %g\n", (double) DBL_MAX); printf("DBL_MIN : %g\n", (double) DBL_MIN); printf("-DBL_MAX : %g\n", (double) -DBL_MAX); printf("Precision value: %d\n", FLT_DIG ); return 0; }
و خروجی به این صورت خواهد بود:
Storage size for float : 4 FLT_MAX : 3.40282e+38 FLT_MIN : 1.17549e-38 -FLT_MAX : -3.40282e+38 -FLT_MIN : -1.17549e-38 DBL_MAX : 1.79769e+308 DBL_MIN : 2.22507e-308 -DBL_MAX : -1.79769e+308 Precision value: 6
-
نوع void
مقدار void مشخص میکند که هیچ مقداری در دسترس نیست، و در سه حالت زیر وجود دارد:
هژیر هستم، فارغ التحصیل کارشناسی نرمافزار – دانشجوی ارشد مدیریت کسب و کار + تک یوتوبر | علاقهمند به تولیدمحتوا و آموزش | یادگیری رو هم دوست دارم | کدنتو هم یکی از کارهای منه!