• انواع داده در C. انواع داده ها و عملیات در زبان C. اصطلاحات

    از متغیرها برای ذخیره داده های مختلف در زبان های برنامه نویسی استفاده می شود. متغیر ناحیه ای از حافظه است که یک نام دارد که در غیر این صورت به عنوان شناسه شناخته می شود.

    با نامگذاری یک متغیر، برنامه نویس به طور همزمان ناحیه حافظه را که در آن مقادیر متغیر برای ذخیره سازی با همان نام ذخیره می شود، نامگذاری می کند.

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

    کلمات کلیدی رزرو شده auto double int struct break other switch long register tupedef char extern return void case float unsigned default for signed union do if sizeof volatile ادامه enum short while
    در زبان C همه متغیرها باید اعلان شوند. یعنی اولاً در ابتدای هر برنامه یا تابع باید تمام متغیرهای استفاده شده را لیست کنید و ثانیاً نوع هر کدام را مشخص کنید.

    زمانی که متغیری اعلان می شود، کامپایلر بسته به نوع آن، فضایی را برای آن در حافظه اختصاص می دهد. ابزارهای استاندارد AVR GCC با انواع داده کار می کنند کاراکتر(نوع کاراکتر) و بین المللی(نوع عدد صحیح).

    انواع متغیر

    char تایپ کنید

    کاراکتر- مقرون به صرفه ترین نوع است. نوع کاراکتر می تواند امضا شده یا بدون علامت باشد. به ترتیب به عنوان " کاراکتر امضا شده" (نوع امضا شده) و " کاراکتر بدون امضا" (نوع بدون علامت). یک نوع علامت دار می تواند مقادیر را در محدوده -128 تا +127 ذخیره کند. یک نوع بدون علامت می تواند مقادیر 0 تا 255 را ذخیره کند. 1 بایت حافظه (8 بیت) برای یک نوع کاراکتر اختصاص داده می شود. متغیر.

    کلمات کلیدی (اصلاح کننده ها) امضاء شدهو بدون امضانشان می دهد که چگونه بیت صفر متغیر اعلام شده تفسیر می شود، به عنوان مثال، اگر کلمه کلیدی بدون علامت مشخص شده باشد، بیت صفر به عنوان بخشی از عدد تفسیر می شود، در غیر این صورت بیت صفر به عنوان علامت تفسیر می شود.

    int را تایپ کنید

    مقدار صحیح بین المللیشاید کوتاه(کوتاه) یا طولانی(طولانی).

    کلمه کلیدی (اصلاح کننده) کوتاهبعد از کلمات کلیدی قرار می گیرد امضاء شدهیا بدون امضا. بنابراین، انواع زیر متمایز می شوند: امضا شده کوتاه int، بدون علامت کوتاه int، امضا طولانی int، بدون علامت طولانی int.

    متغیر نوع امضا کوتاه بین المللی(عدد صحیح کوتاه امضا شده) می تواند مقادیری از -32768 تا +32767 بگیرد، بدون امضا کوتاه(عدد صحیح کوتاه بدون علامت) - از 0 تا 65535. دقیقاً دو بایت حافظه (16 بیت) به هر یک از آنها اختصاص داده شده است.

    هنگام اعلان یک متغیر از نوع امضا کوتاه بین المللیکلید واژه ها امضاء شدهو کوتاهممکن است حذف شود، و چنین نوع متغیری ممکن است به سادگی اعلام شود بین المللی. همچنین می توان این نوع را با یک کلمه کلیدی اعلام کرد کوتاه.

    متغیر بدون امضا کوتاهرا می توان به عنوان اعلام کرد بدون امضایا کوتاه بدون امضا.

    برای هر اندازه امضای طولانی مدتیا بدون امضا طولانی int 4 بایت حافظه (32 بیت) اختصاص داده شده است. مقادیر متغیرهای این نوع می تواند به ترتیب از 2147483648- تا 2147483647 و از 0 تا 4294967295 متغیر باشد.

    همچنین متغیرهایی مانند طولانی طولانی int، که 8 بایت حافظه (64 بیت) به آن اختصاص داده شده است. آنها همچنین می توانند امضا یا بدون امضا باشند. برای یک نوع علامت دار، محدوده مقادیر از -9223372036854775808 تا 9223372036854775807، برای نوع بدون علامت، از 0 تا 18446744073709551615 است. یک نوع امضا شده با دو کلمه کلیدی نیز می تواند باشد. طولانی طولانی.

    تایپ کنید دامنه محدوده هگز اندازه
    کاراکتر بدون امضا 0 ... 255 0x00 ... 0xFF 8 بیت
    کاراکتر امضا شده
    یا به سادگی
    کاراکتر
    -128 ... 127 -0x80 ... 0x7F 8 بیت
    بدون امضا کوتاه
    یا به سادگی
    بدون امضایا کوتاه بدون امضا
    0 ... 65535 0x0000 ... 0xFFFF 16 بیت
    امضا کوتاه بین المللییا امضا شده
    یا به سادگی
    کوتاهیا بین المللی
    -32768 ... 32767 0x8000 ... 0x7FFF 16 بیت
    بدون امضا طولانی int
    یا به سادگی
    بدون امضا طولانی
    0 ... 4294967295 0x00000000 ... 0xFFFFFFFF 32 بیت
    طولانی امضا کرد
    یا به سادگی
    طولانی
    -2147483648 ... 2147483647 0x80000000 ... 0x7FFFFFFF 32 بیت
    طولانی بدون امضا 0 ... 18446744073709551615 0x00000000000000000 ... 0xFFFFFFFFFFFFFFFFFF 64 بیت
    امضای طولانی مدت
    یا به سادگی
    طولانی طولانی
    -9223372036854775808 ... 9223372036854775807 0x80000000000000000 ... 0x7FFFFFFFFFFFFFFF 64 بیت

    متغیرها در یک بیانیه اعلام می شوند. یک بیانیه شامل مشخصات نوع و لیستی از نام متغیرها با کاما است. در انتها باید یک نقطه ویرگول وجود داشته باشد.

    یک اعلان متغیر دارای فرمت زیر است:

    [modifiers] typespecifer id [, id] ...

    اصلاح کننده ها- کلید واژه ها امضاء شده, بدون امضا, کوتاه, طولانی.
    مشخص کننده نوع- کلمه کلیدی کاراکتریا بین المللی A که نوع متغیر اعلام شده را مشخص می کند.
    مشخص کننده- نام متغیر

    مثال: char x; int a, b, c; بدون امضا long long y;
    بنابراین متغیرها اعلام خواهند شد ایکس, آ, ب, ج, y. به یک متغیر ایکسنوشتن مقادیر از -128 تا 127 امکان پذیر خواهد بود. در متغیرها آ, ب, ج- از -32768 تا +32767. به یک متغیر y- از 0 تا 18446744073709551615.

    مقداردهی یک متغیر هنگام اعلان اولیه

    هنگام اعلام یک متغیر، می توانید آن را مقداردهی اولیه کنید، یعنی یک مقدار اولیه به آن اختصاص دهید. این کار را می توان به روش زیر انجام داد. int x = 100; بنابراین در یک متغیر ایکسپس از اعلام، شماره 100 بلافاصله نوشته می شود.

    بهتر است از اختلاط متغیرهای اولیه در یک عبارت اعلان اجتناب شود، یعنی بهتر است متغیرهای اولیه در خطوط جداگانه اعلام شوند.

    ثابت ها

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

    مثال: const long int k = 25; const m = -50; // const ضمنی int m=-50 const n = 100000; // مستلزم const long int n=100000

    وظیفه

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

    عملگر "=" نباید به عنوان برابری درک شود.
    به عنوان مثال، عبارت a = 5; باید به عنوان "تغییر a را به 5 تنظیم کنید" خوانده شود.

    مثال: x = 5 + 3; // مقادیر 5 و 3 را اضافه کنید، // نتیجه را به متغیر x اختصاص دهید (برای متغیر x بنویسید) b = a + 4; // به مقدار ذخیره شده در متغیر a 4 اضافه کنید، // نتیجه را به متغیر b اختصاص دهید (برای متغیر b بنویسید) b = b + 2; // 2 را به مقدار ذخیره شده در متغیر b اضافه کنید، // نتیجه را به متغیر b اختصاص دهید (برای متغیر b بنویسید)
    در سمت راست، مقدار متغیر را می توان چندین بار استفاده کرد: c = b * b + 3 * b;

    مثال: x = 3; // به متغیر x مقدار 3 اختصاص داده می شود y=x+5; // مقدار ذخیره شده در متغیر x با عدد 5 اضافه می شود، // نتیجه به متغیر y نوشته می شود. z = x * y; // مقادیر متغیرهای x و y ضرب می‌شوند، // نتیجه روی متغیر z نوشته می‌شود. z = z - 1; // 1 از مقدار ذخیره شده در متغیر z کم می شود // نتیجه روی متغیر z نوشته می شود
    بنابراین، در متغیر zشماره 23 ذخیره خواهد شد

    علاوه بر عملگر انتساب ساده "="، چندین عملگر تخصیص ترکیبی دیگر در C وجود دارد: "+="، "-="، "*=
    مثال: x += y; // مانند x = x + y; - x و y // را اضافه کنید و نتیجه را به متغیر x بنویسید x - = y; // مانند x = x - y; - مقدار y را از x // کم کنید و نتیجه را روی متغیر x بنویسید x *= y; // مانند x = x * y; - x را در y // ضرب کنید و نتیجه را در متغیر x ذخیره کنید x /= y; // مانند x = x / y; - x را بر y // تقسیم کنید و نتیجه را در متغیر x ذخیره کنید x %= y; // مانند x = x % y; // باقیمانده عدد صحیح تقسیم x بر y // را محاسبه کرده و نتیجه را در متغیر x ذخیره کنید

    افزایش و کاهش

    اگر می خواهید مقدار متغیر را به 1 تغییر دهید، از آن استفاده کنید افزایشیا کاهش.

    افزایش- عملیات افزایش مقدار ذخیره شده در یک متغیر به میزان 1.

    مثال: x++; // متغیر x با 1 افزایش می یابد$WinAVR = ($_GET["avr"]); if($WinAVR) شامل($WinAVR);؟>
    کاهش- عملیات کاهش مقدار ذخیره شده در یک متغیر به میزان 1.

    مثال: x--; // متغیر x با 1 کاهش می یابد
    افزایش و کاهش عملیات انتساب هستند. هنگام استفاده از کاهش و افزایش همراه با عملگر انتساب "="، علامت پسوند (x++) یا پیشوند (++x) استفاده می شود. ابتدا علامت گذاری پیشوند انجام می شود.

    مثال: y = x++;
    فرض کنیم که متغیر ایکسمقدار 5 ذخیره شد. سپس در yمقدار 5 نوشته می شود و پس از آن مقدار متغیر ایکس 1 افزایش خواهد یافت. بنابراین، در y 5 خواهد بود و ایکس- 6. y = --x;
    اگر در ایکسمقدار 5 ذخیره شد، سپس کاهش ابتدا انجام می شود ایکسبه 4 و سپس آن مقدار به یک متغیر اختصاص داده می شود y. بدین ترتیب، ایکسو yمقدار 4 به آن اختصاص داده خواهد شد.

    نوع داده توصیفی از محدوده مقادیری است که یک متغیر از نوع مشخص شده می تواند بگیرد. هر نوع داده با موارد زیر مشخص می شود:
    1. تعداد بایت های اشغال شده (اندازه)
    2. محدوده مقادیری که یک متغیر از این نوع می تواند بگیرد.

    تمام انواع داده ها را می توان به انواع زیر تقسیم کرد:
    1. انواع ساده (اسکالری) و پیچیده (بردار).
    2. پایه (سیستم) و کاربر (تعریف شده توسط کاربر).
    در زبان C، سیستم نوع پایه از چهار نوع داده تشکیل شده است:
    1. نمادین،
    2. عدد صحیح،
    3. دقت تک واقعی،
    4. دقت دو برابر واقعی.

    شرح تفصیلی انواع داده در زبان C

    نوع نوع کاراکتر نوع عدد صحیح تک نوع واقعی دقیق دقت دو برابر نوع واقعی
    شرح کاراکتر بین المللی شناور دو برابر
    اندازه 1 بایت (8 بیت) 4 بایت (32 بیت) 4 بایت (32 بیت)
    23 بیت - مانتیس;
    8 بیت - سفارش؛
    1 بیت - علامت.
    8 بایت (64 بیت)
    52 بیت - مانتیس;
    11 بیت - سفارش؛
    1 بیت - علامت.
    محدوده ارزش -128 ... 127 2147483648 ... 2147483647 ±3.4E±38
    دقت تا 7 رقم اعشار
    308±1.7E
    دقت تا 17 رقم اعشار

    زبان C دو نوع تغییر دهنده نوع داده را ارائه می دهد:
    1. اصلاح کننده علامت: امضا شده و بدون امضا.
    2. اصلاح کننده اندازه: کوتاه و بلند.
    اصلاح کننده های نوع با جزئیات بیشتر در جدول توضیح داده شده اند:

    اعداد مختلط در SI

    اعداد مختلط در استاندارد C99 معرفی شده اند.
    float _Complex
    دوتایی _کمپلکس
    بلند دوبل _Complex
    این همه شادی در کتابخانه است مجتمع.h :)

    حداقل و حداکثر مقادیر همه انواع داده های پایه زبان SI در کتابخانه ها توضیح داده شده است: limits.h - شامل محدوده مقادیر صحیح، float.h - شامل محدوده مقادیر واقعی است.

    نوع داده بولی در SI

    استاندارد C89:

    نوع بولی - بین المللی
    0 - نادرست (نادرست)؛
    نه 0 - درست (درست). یعنی به این ترتیب، نوع منطقی ایجاد نمی شود، بلکه به جای آن از int استفاده می شود.
    استاندارد C99:
    نوع بولی - _بول
    کلمات کلیدی: bool true false
    و این شادی در کتابخانه است stdbool.h

    اپراتورهای اعلامیه

    متغیر یک ناحیه حافظه نامگذاری شده از یک رایانه است که برای ذخیره مقادیر از یک نوع خاص طراحی شده است، با یک روش دسترسی دلخواه: خواندن و نوشتن. نام متغیر یک شناسه زبان C قانونی است که قبلاً برای اشاره به سایر متغیرها، انواع، اعضای enum یا نام توابع استفاده نشده بود. عملگر اعلان متغیر دارای نحو زیر است: نوع name1[,name2[,...]]; مثال ها:
    int a, b, c;
    دو برابر x، y;
    چارچ;
    برخی از قوانین ناگفته وجود دارد، به عنوان مثال اجرا که شکل خوبی است، اما انجام این کار ضروری نیست:
    1. هر اعلان متغیرهای یک نوع جدید از یک خط جدید شروع می شود.
    2. از نام متغیر باید مشخص شود که چرا وجود دارد و چه چیزی در آن ذخیره می شود (البته گاهی اوقات به دلیل چنین نام های آموزنده ای، سرعت نوشتن کد کاهش می یابد، زیرا برخی افراد گم می شوند و متغیرها را صدا می کنند. جملات کامل)؛
    3. بنابراین یک قانون وجود دارد: نام متغیر نباید خیلی طولانی باشد.
    4. پس از اعلام یک متغیر، بسیار مطلوب است که در نظرات مشخص کنید که چرا آن است.
    5. لازم است نام متغیرها را با فاصله جدا کنید.
    عملگر اعلان متغیر با مقداردهی اولیه دارای نحو زیر است: نوع name1[=value1][, name2[=value2][,...]]; مثال ها:
    int a=26, b=032, c=0x1A;
    دو برابر x=2.5e2,y=0x1.ffe-3;
    charch='Z';

    ثابت های SI

    سه نوع ثابت در زبان C وجود دارد:
    1. عدد صحیح،
    2. واقعی،
    3. نمادین.
    ثابت های عدد صحیح
    1. ثابت اعشاری با یک عدد اعشاری به شکل معمول نشان داده می شود.
    2. یک ثابت هشتی با عددی نشان داده می شود که با رقم صفر شروع می شود و شامل ارقام 0...7 است.
    3. یک ثابت هگزادسیمال با یک عدد صحیح با پیشوند 0x یا 0X نشان داده می شود که شامل اعداد 0...9 و حروف الفبای لاتین a...f، A...F است.
    ثابت های واقعی به صورت اعشاری یا هگزادسیمال نوشته می شوند. موقعیت کاما با یک نقطه نشان داده می شود، توان بعد از حرف لاتین e (یا E) نشان داده می شود. قبل از ثابت های کاراکتر یک کاراکتر \ وجود دارد، این به اصطلاح "فرار" است. در زبان C کاراکترهای خاصی وجود دارد:
    "\" - نقل قول تک،
    "\" - دو نقل قول،
    "\\" - اسلش معکوس،
    '\؟' - علامت سوال،
    "\a" - سیگنال صوتی،
    "\b" - حذف یک کاراکتر،
    "\f" - پیمایش صفحه،
    "\n" - فید خط،
    "\r" - بازگشت کالسکه به ابتدای خط،
    "\t" - زبانه افقی،
    '\v' - برگه عمودی.

    در C نیز می توانید متغیرهایی ایجاد کنید که مقدار ثابتی دارند (مقدار آنها قابل تغییر نیست). اعلان چنین "متغیرهایی" دارای نحو زیر است: نوع const name1=value1[,name2=value2[,...]]; مثال ها:
    const بدون علامت int x=80, y=25;
    const double pi=3.1415;

    اپراتور برای ایجاد انواع داده در SI

    عملگر typedef برای ایجاد انواع داده های سفارشی استفاده می شود، نحو استفاده از آن عبارت است از: typedef old_type_name new_type_name; مثال:
    typedef intword بدون علامت;
    در SI، طبق استاندارد، تعریف نوع را می توان تقریباً در هر نقطه از برنامه انجام داد (یعنی هیچ بلوک کاملاً تعریف شده ای برای تعریف انواع داده وجود ندارد). تابعی برای تعیین اندازه یک نوع یا یک متغیر از هر نوع: sizeof ، تعداد بایت های اشغال شده در حافظه را برمی گرداند. مثال:
    sizeof(int) //بازگشت 4
    sizeof(char) //نتیجه 1
    sizeof(double) // 8 را برمی گرداند

    این برگه تقلب اطلاعاتی در مورد انواع داده های اصلی زبان برنامه نویسی C++ و ویژگی های اجرای آنها ارائه می دهد. همچنین در انتهای رکورد جدولی با محدوده مقادیر این نوع وجود دارد.

    مفهوم نوع داده

    هدف اصلی هر برنامه پردازش داده است. انواع مختلف داده ها به طور متفاوتی ذخیره و پردازش می شوند. در هر زبان الگوریتمی، هر نتیجه ارزیابی ثابت، متغیر، عبارت یا تابع باید نوع خاصی داشته باشد.

    نوع داده تعریف می کند:

    • نمایش داخلی داده ها در حافظه کامپیوتر؛
    • مجموعه مقادیری که مقادیر از این نوع می توانند بگیرند؛
    • عملیات و توابعی که می توان برای مقادیر این نوع اعمال کرد.

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

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

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

    انواع داده های پایه (استاندارد) اغلب حسابی نامیده می شوند زیرا می توان از آنها در عملیات حسابی استفاده کرد. موارد زیر برای توصیف انواع اصلی تعریف شده است:

    1. int (عدد صحیح);
    2. کاراکتر (شخصیت)؛
    3. wchar_t (کاراکتر گسترده)؛
    4. bool (بولی)؛
    5. شناور (واقعی)؛
    6. دوبل (واقعی با دقت مضاعف).

    چهار عدد اول را عدد صحیح می نامند ( کل ) دو مورد آخر انواع ممیز شناور . کدی که کامپایلر برای مدیریت مقادیر صحیح تولید می کند با کد مقادیر ممیز شناور متفاوت است.

    چهار تا هست مشخص کننده نوع با مشخص کردن نمایش داخلی و محدوده مقادیر انواع استاندارد:

    • کوتاه (کوتاه)؛
    • طولانی (طولانی)؛
    • امضا شده (نشانه)؛
    • بدون امضا (بدون امضا).

    نوع عدد صحیح (int)

    اندازه نوع int توسط استاندارد تعریف نشده است، اما به کامپیوتر و کامپایلر بستگی دارد. برای یک پردازنده 16 بیتی، 2 بایت برای مقادیر از این نوع، برای یک پردازنده 32 بیتی - 4 بایت اختصاص داده می شود.

    مشخص کننده کوتاه در جلوی نام نوع به کامپایلر می گوید که بدون توجه به ظرفیت پردازنده، 2 بایت برای تعداد مورد نیاز است. مشخص کننده طولانی به این معنی است که مقدار عدد صحیح 4 بایت خواهد بود. بنابراین در یک کامپیوتر 16 بیتی معادل های int و short int و در کامپیوتر 32 بیتی int و long int هستند.

    نمایندگی داخلی مقادیر از نوع عدد صحیح - یک عدد صحیح در کد باینری. هنگام استفاده از مشخص کننده علامت، مهم ترین بیت عدد به عنوان علامت (0 - عدد مثبت، 1 - منفی) تفسیر می شود. مشخص‌کننده بدون علامت اجازه می‌دهد فقط اعداد مثبت نمایش داده شوند، زیرا مهم‌ترین رقم بخشی از کد عدد در نظر گرفته می‌شود. بنابراین، محدوده مقادیر نوع int به مشخص کننده ها بستگی دارد. محدوده‌های مقادیر مقادیر نوع عدد صحیح با مشخص‌کننده‌های مختلف برای رایانه‌های سازگار با IBM PC در جدول «محدوده‌های ارزش انواع داده‌های ساده» در انتهای ورودی آورده شده است.

    به‌طور پیش‌فرض، همه انواع اعداد صحیح علامت‌دار در نظر گرفته می‌شوند، به این معنی که مشخص‌کننده علامت‌دار را می‌توان حذف کرد.

    ثابت هایی که در برنامه با آنها مواجه می شوند، مطابق با نوع آنها، یک نوع یا نوع دیگری را اختصاص می دهند. اگر این نوع به دلایلی برای برنامه نویس مناسب نیست، می تواند با استفاده از پسوندهای L، l (طولانی) و U، u (بدون علامت) نوع مورد نیاز را به صراحت مشخص کند. به عنوان مثال، ثابت 32L از نوع long و 4 بایت خواهد بود. می توانید از پسوندهای L و U به طور همزمان استفاده کنید، به عنوان مثال، 0x22UL یا 05Lu.

    توجه داشته باشید

    انواع short int، long int، signed int و unsigned int را می توان به ترتیب به short، long، signed و unsigned کوتاه کرد.

    نوع کاراکتر (کاراکتر)

    مقدار یک نوع کاراکتر، تعداد بایت‌هایی است که برای قرار دادن هر کاراکتری از مجموعه کاراکتر برای یک رایانه خاص کافی است، که منجر به نام نوع آن می‌شود. به طور معمول، این 1 بایت است. نوع کاراکتر مانند سایر انواع عدد صحیح می تواند دارای علامت یا بدون علامت باشد. مقادیر امضا شده می توانند مقادیری از -128 تا 127 را ذخیره کنند. هنگام استفاده از مشخص کننده بدون علامت، مقادیر می توانند از 0 تا 255 متغیر باشند. این برای ذخیره هر کاراکتری در مجموعه کاراکترهای ASCII 256 کاراکتری کافی است. مقادیر نوع char نیز برای ذخیره اعداد صحیحی که از مرزهای محدوده های مشخص شده تجاوز نمی کنند استفاده می شود.

    نوع کاراکتر توسعه یافته (wchar_t)

    نوع wchar_t برای کار با مجموعه ای از کاراکترها طراحی شده است که 1 بایت برای کدگذاری کافی نیست، مانند Unicode. اندازه این نوع به پیاده سازی بستگی دارد. به عنوان یک قاعده، با نوع کوتاه مطابقت دارد. ثابت های رشته ای از نوع wchar_t با پیشوند L نوشته می شوند، به عنوان مثال، L"Gates".

    نوع بولی (bool)

    مقادیر Boolean فقط می توانند مقادیر true و false را که کلمات رزرو شده هستند، بگیرند. نمایش داخلی false 0 (صفر) است. هر مقدار دیگری به عنوان درست تفسیر می شود. هنگامی که به یک نوع عدد صحیح تبدیل می شود، true مقدار 1 را دارد.

    انواع ممیز شناور (شناور، دوبل و بلند دوبل)

    استاندارد C++ سه نوع داده را برای ذخیره مقادیر واقعی تعریف می کند: float، double و long double.

    انواع داده های ممیز شناور در حافظه کامپیوتر متفاوت از انواع داده های صحیح ذخیره می شوند. نمایش داخلی یک عدد واقعی از دو بخش تشکیل شده است - مانتیس و توان. در رایانه های سازگار با IBM PC، مقادیر شناور 4 بایت را اشغال می کنند که یک بیت برای علامت مانتیس، 8 بیت برای توان و 23 بیت برای مانتیس اختصاص داده می شود. مانتیس عددی بزرگتر از 1.0 اما کمتر از 2.0 است. از آنجایی که بالاترین رقم مانتیس همیشه 1 است، ذخیره نمی شود.

    برای مقادیر نوع double با اشغال 8 بایت، 11 و 52 رقم به ترتیب برای دستور و مانتیس در نظر گرفته شده است. طول آخوندک دقت عدد را تعیین می کند، در حالی که طول نما محدوده آن را تعیین می کند.همانطور که در جدول انتهای ورودی مشاهده می کنید، با تعداد یکسانی از بایت های اختصاص داده شده برای مقادیر float و long int، محدوده مقادیر معتبر آنها بسیار متفاوت است. به دلیل فرم نمایندگی داخلی.

    مشخص کننده طولانی قبل از نام نوع دوگانه نشان می دهد که 10 بایت به مقدار آن اختصاص داده شده است.

    ثابت های ممیز شناور به طور پیش فرض از نوع double هستند. با استفاده از پسوندهای F, f (شناور) و L, l (طولانی) می توانید به صراحت نوع یک ثابت را مشخص کنید. برای مثال، ثابت 2E+6L از نوع long double و ثابت 1.82f از نوع float خواهد بود.

    برای نوشتن برنامه های چند پلتفرمی، نمی توانید در مورد اندازه نوع int فرضیاتی داشته باشید. برای دریافت آن باید از عملگر sizeof استفاده کنید که اندازه نوع را بر حسب بایت برمی گرداند. به عنوان مثال، در یک سیستم عامل MS-DOS، sizeof(int) به 2 و در ویندوز 98 یا OS/2، نتیجه 4 خواهد بود.

    استاندارد ANSI محدوده مقادیر را برای انواع اصلی مشخص نمی کند، فقط نسبت بین اندازه آنها تعریف شده است، به عنوان مثال:

    sizeof(float) ≤ slzeof(دوبل) ≤ sizeof(طولان دوبل)
    sizeof(char) ≤ slzeof(کوتاه) ≤ sizeof(int) ≤ sizeof(طولانی)

    توجه داشته باشید

    حداقل و حداکثر مقادیر مجاز برای انواع عدد صحیح وابسته به پیاده سازی است و در فایل هدر آورده شده است ()، ویژگی های انواع واقعی - در فایل () و همچنین در قالب کلاس numeric_limits

    نوع خالی

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

    محدوده ارزش انواع داده های ساده در C++ برای رایانه های سازگار با IBM PC

    س: عبارت کامپیوتر سازگار با IBM PC به چه معناست؟
    A: رایانه سازگار با IBM PC (eng. IBM PC compatible) - رایانه ای که از نظر معماری به رایانه های شخصی IBM، XT و AT نزدیک است. کامپیوترهای سازگار با IBM PC مبتنی بر ریزپردازنده‌های سازگار با Intel 8086 هستند (و همانطور که می‌دانید، تمام پردازنده‌های جدید اینتل کاملاً با 8086 سازگار هستند). در واقع، این تقریباً تمام رایانه های مدرن است.

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

    تایپ کنید محدوده ارزش اندازه (بایت)
    بوول درست و نادرست 1
    کاراکتر امضا شده -128 … 127 1
    کاراکتر بدون امضا 0 … 255 1
    امضا کوتاه بین المللی -32 768 … 32 767 2
    بدون امضا کوتاه 0 … 65 535 2
    امضای طولانی مدت -2 147 483 648 … 2 147 483 647 4
    بدون امضا طولانی int 0 … 4 294 967 295 4
    شناور 3.4e-38 … 3.4e+38 4
    دو برابر 1.7e-308 … 1.7C+308 8
    دوبل بلند 3.4e-4932 … 3.4e+4932 10

    برای انواع واقعی، جدول مقادیر مطلق مقادیر حداقل و حداکثر را نشان می دهد.

    لطفاً AdBlock را در این سایت متوقف کنید.

    برای ذخیره هر داده در برنامه خود، به متغیرهایی نیاز دارید. اول از همه، باید یاد بگیرید که چگونه این متغیرها را در برنامه ایجاد کنید. به عبارت دیگر، قیاس خود را با جعبه ها به خاطر بسپاریم، برای اینکه چیزی را در یک جعبه قرار دهیم، خوب است که آن را، همان جعبه، ابتدا از جایی تهیه کنیم.

    در کتاب های برنامه نویسی به فرآیند ایجاد متغیر می گویند اعلام متغیر. برای درک ادبیات حرفه ای و صحبت های دیگر برنامه نویسان خوب است این عبارت را بدانید. اما درک آنچه در پشت این عبارت نهفته است حتی مهمتر است.

    چگونه یک متغیر را تعریف کنیم؟

    برای تعریف یک متغیر باید نوع آن را مشخص کرده و نام آن را یادداشت کنید. خوب، فراموش نکنید که ";" را قرار دهید. ساختار کلی یک اعلان متغیر در شکل زیر نشان داده شده است.

    عکس. 1. نحو کلی برای اعلان یک متغیر."

    در مثال شکل، متغیری به نام num ایجاد می کنیم که می تواند اعداد صحیح را ذخیره کند. این واقعیت که ما قصد داریم از یک متغیر برای ذخیره اعداد صحیح استفاده کنیم با نوع داده int مشخص می شود.

    چند مثال دیگر:

    لیست 1. اعلام متغیرها

    intz; // متغیر z از نوع عدد صحیح char w; // متغیر w نوع کاراکتر

    برای نام متغیرها، یک قانون وجود دارد که باید آن را به خاطر بسپارید.

    نام متغیر می تواند هر دنباله ای از نویسه های لاتین، اعداد و کاراکتر زیرخط "_" باشد که با یک حرف شروع می شود.

    در واقع محدودیت های اضافی برای نام متغیر وجود دارد، اما فعلا وارد چنین جزئیاتی نمی شویم. بیایید نگاهی دقیق تر به نمونه هایی از نام های صحیح و نادرست بیندازیم.

    نام متغیرها را اصلاح کنید

    Peremennaya، flag، f3، var4، KolichestvoBukv، fd4s، FLAG، key_number

    نام متغیرها نادرست

    2num - با یک عدد شروع می شود
    num flat - حاوی یک فاصله در نام است
    number-telefona - حاوی خط فاصله است

    و یک نکته مهم دیگر. در زبان برنامه نویسی C حروف بزرگ اهمیت زیادی دارد. به عنوان مثال، متغیرهایی با نام flag، FLAG، Flag، flag همگی متغیرهای متفاوتی هستند. علاوه بر این، تعدادی کلمه وجود دارد که نمی توان از آنها برای نامگذاری متغیرها استفاده کرد. به عنوان مثال، int، void، return و دیگران. اینها کلمات کلیدی خاصی هستند که برای نیازهای خود زبان رزرو شده اند و در جای دیگری قابل استفاده نیستند.

    به هر حال، برای یک اعلان، می توانید چندین متغیر از یک نوع را به طور همزمان ایجاد کنید.

    فهرست 2. اعلام متغیرهای متعدد

    int a,c; // متغیرهای a و c از نوع صحیح double x, y, z را اعلان کنید. // سه متغیر واقعی را همزمان اعلام کنید

    همه چیز ساده و منطقی است. ابتدا نوع متغیرها را مشخص می کند و سپس نام آنها را با کاما از هم جدا می کند.

    متغیر در حافظه کامپیوتر

    چند کلمه در مورد اینکه یک اعلان متغیر از دیدگاه یک کامپیوتر چگونه به نظر می رسد.

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

    لیست 3. اعلام دو متغیر

    intw; // یک متغیر عدد صحیح w double z را اعلام کنید. // یک متغیر واقعی z را اعلام کنید

    شکل 3. متغیرهای حافظه کامپیوتر

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

    تمرین

    وظایف پیشنهادی را حل کنید: برای راحتی کار، بلافاصله به حالت تمام صفحه بروید

    وظایف تحقیقاتی برای هکرها

    1. یک متغیر با نام اشتباه در برنامه اعلام کنید و سعی کنید برنامه را کامپایل کنید. ببینید کامپایلر چه خطایی می دهد.
    2. لیستی از تمام کلمات کلیدی C را پیدا کنید. می توانید در استاندارد زبان (اشاره: "کلمات کلیدی") یا در اینترنت جستجو کنید. شما نیازی به حفظ آنها ندارید، اما ارزش یک بار دیدن آنها را دارد.