0

آموزش زبان C |نوع‌های داده‌ای زبان C |جلسه پنجم

در این جلسه با انواع داده‌ها در زبان C آشنا می‌شویم و به بررسی کامل هر کدام از آن‌ها می‌پردازیم.

نوع‌های داده‌ها در زبان c اشاره به یک سیستم گسترده دارد که برای تعریف متغیرها یا توابع مختلف استفاده می‌شود. نوع متغیر تعیین می‌کند که چقدر فضای ذخیره سازی اشغال می‌کند و الگوی ذخیره‌سازی آن چگونه است.نوع‌های داده‌ای زبان C

انواع دیتاتایپ‌ها در زبان C:

دیتا تایپ های زبان C

  1. دیتاتایپ‌های اولیه:

    انواع حسابی هستند و بیشتر به: (الف) انواع اعداد صحیح و (ب) انواع اعشاری طبقه بندی می‌شوند.

  2. دیتاتایپ‌های Enumerated:

    این نوع دیتاتایپ هم حسابی هستند، با این تفاوت که مقادیر صحیح گسسته را شامل می‌شود.

  3. دیتاتایپ‌های خالی void:

    برای برگرداندن یک مقدار خالی در یک تابع مورد استفاده قرار می‌گیرد.

  4. دیتاتایپ‌های مشتق شده:

    دیتاتایپ‌های مشتق شده، این موارد را شامل می‌شود: (الف) انواع اشاره‌گر ، (ب) انواع آرایه ، (ج) انواع داده‌های ساختاریافته و (ه) انواع توابع.


نوع یک تابع را، مقداری که بازمی‌گرداند مشخص می‌کند. در بخش پایین نوع‌های پایه‌ای را بررسی می‌کنیم و در جلسات آینده به بقیه موارد می‌پردازیم.

  1. اعداد صحیح(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

  2. اعداد صحیح اعشاری(Floating-Point)

    جدول زیر جزئیات انواع استاندارد صحیح اعشاری را با اندازه و محدوده ذخیره سازی و دقت آن‌ها نمایش می‌دهد:

    اعداد صحیح اعشاری(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

  3. نوع void

    مقدار void مشخص می‌کند که هیچ مقداری در دسترس نیست، و در سه حالت زیر وجود دارد:
    نوع void در زبان C

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *