زبان برنامه نویسی سی/متغیرها: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۱۲۱:
! بازه عددی !! حجم اشغال شده ( به بایت ) !! نوع داده
|-
| -32,768- تا 32,768 || 2 || signed short , short , short int , signed short int , int
|-
| 0 تا 65,535 || 2 || unsigned short , unsigned short int , unsigned int
|-
| -2,147,483,648- تا 2,147,483,647 || 8 || signed long , signed long int , long , long int
|-
| 0 تا 4,294,967,295 || 8 || unsigned long , unsigned long int
|-
| -9,223,372,036,854,775,808- تا 9,223,372,036,854,775,807 || 16 || long long , long long int , signed long long , signed long long int
|-
| 0 تا 18,446,744,073,709,551,615 || 16 || unsigned long long , unsigned long long int
|-
| 38-38 ^ 10 * 1.17549435 تا 38 ^ 10 * 3.40282347 || 4 || float
|-
| 308-308 ^ 10 * 2.2250738585072014 تا 308 ^ 10 * 1.7976931348623157 || 8 || double
|-
| 4932-4932 ^ 10 * 3.4 تا 4932 ^ 10 * 1.1 || 10 || long double
|}
{{پایان چپ‌چین}}
 
متغیر هایی که از نوع اعشاری هستند ، همانطور که از اسمشان پیداست ؛ جهت ذخیره اعداد اعشاری به کار می روند . بنابراین اگر قصد ایجاد یک عدد اعشاری را ندارید ، بیهوده از آنها استفاده ننمائید و تنها زمانی دست به ایجاد متغیر هایی از نوع عدد اعشاری بزنید که به آنها نیاز داشته باشید ، آن هم دقیقاً متناسب با مقدار مورد نیاز خود . متغیر های float دقت کم تری نسب به double و در نهایت نسبت به long double دارند .
دقت کنید که برخی کامپایلر های قدیمی نوع داده long long یا همان long long int را به رسمیت نمی شناسند و یا حتی long double را ، ابتدا از به رسمیت شناخته شدن این نوع داده ها توسط کامپایلر خود ، پیش از استفاده از آنها ، اطمینان حاصل نمائید . همچنین به صورت اختیاری برخی کامپایلر ها از نوع داده long long double پشتیبانی می نمایند که می تواند در محیط آن کامپایلر ها از این نوع داده استفاده نمائید ، اما یک نوع داده استاندارد نیست .
 
کاملاً دقت داشته باشید که انواع داده ای float و double و long double به صورت پیش فرض علامت دار هستند و بازه عددی آنها در کوچک ترین و بزرگ ترین اعدادی که می توانند ذخیره کنند را در جدول نوشتیم که همین مقدار با قوانینی که بیان گردید در بازه اعداد مثبت نیز قرار می گیرد و شما نمی توانید آنها را بر خلاف نوع داده ای مثل int بدون علامت نمائید .
 
حتی اگر مبانی ریاضیات را به خوبی می دانید بدنیست ، به استاندارد تعریف شده اعداد اعشاری توسط مؤسسه مهندسان برق و الکترونیک رجوع کنید تا بهتر از نحوه پردازش و ذخیره اعداد اعشاری در رایانه آگاه شوید :
 
https://en.wikipedia.org/wiki/IEEE_floating_point
 
=== متغیر های کاراکتری ===
 
به واسطه استفاده از کلیدواژه char شما مجاز و مجبور به استفاده از یک داده کاراکتری در متن برنامه سی خود هستید . همانند متغیر های عددی ، متغیر کاراکتری نیز باید یک نام داشته باشد و شما می توانید اول آن را اعلان کرده و سپس تعریف نمائید . ولی در داخل هر داده کاراکتر تنها یک کاراکتر که می تواند هر کدام از کاراکتر های ANSI مطابق با استاندارد 98/99 باشد و مطابق با آخرین استاندارد زبان سی یعنی C11 شما می توانید هر کدام از کاراکتر های Unicode را ذخیره نمائید . اما اکثر کامپایلر ها ، هنوز با آخرین استاندارد سی ، به روز رسانی نشده اند . هر کاراکتری را که میخواهید در متغیر خود ذخیره نمائید باید داخل دو علامت سینگل کوت قرار دهید . مانند : '0' یا 'A' یا '*' که هر کدام یک کاراکتر از کاراکتر های کاراکترست ANSI هستند . کاراکترست های بسیاری موجود هستند که در ابتدای کتاب نیز بدین مبحت اشاره نمودیم . اما شما برای کار با زبان سی باید تا به صورت مطلوبی به کاراکترست ANSI مسلط باشید . ANSI نام مستعار کاراکترست اسکی موسسه استاندارد سازی آمریکاست ، بنابراین نام اصلی آن ASCII می باشد که دارای 128 کاراکتر می باشد .
 
در هر کاراکترست ، مقدار متناظر کاراکتری برای هر مقدار باینری موجود می باشد . بنابراین زمانی که شما کاراکتر عدد هشت را به صورت '8' در داخل یک متغیر کاراکتری ذخیره می نمائید ، مقدار آن 56 خواهد بود و نه 8 . یعنی زمانی که شما با اعداد کار می کنید ، واسطه ای در کار نیست و عدد 8 شما اگر مبنای 10 ذخیره و پردازش گردد ، همان 8 است . اما زمانی که می خواهید کاراکتر 8 را در یک متغیر کاراکتری ذخیره نمائید ، این مقدار یک عدد نیست بلکه به مثابه یک حرف و به عبارت بهتر یک کاراکتر است که در درون متغیر ذخیره می گردد .
 
نوع داده کاراکتری به شما کمک می کند تا در مواقعی که نیاز به نوشتن و خواندن متن در برنامه خود دارید از اتلاف وقت جلوگیری گردد . در صورت عدم وجود این نوع داده شما خودتان موظف بودید تا متون را به مقادیر عددی بنویسید و وارد کنید و در نهایت تحویل بگیرید . نحوه ایجاد یک کاراکتر :
 
{{چپ‌چین}}
<source lang="C#">
char word = 'W';
</source>
{{پایان چپ‌چین}}
 
از آنجایی که هنوز با مبحث اشاره گر ها آشنا نشده ایم نمی توانیم مبحث را خلط کنیم ، اما اگر مشتاقید تا بدانید که چگونه می توان متونی را که مطمئناً بیش از یک کاراکتر هستند در سی استفاده نمود ؛ باید بگوئیم که با استفاده از ترفند اشاره گر و اضافه نمودن آن به تعریف کارکتر در برنامه خود می توانیم ، متونی را که حتماً به یاد دارید به آنها رشته می گوئیم ، ذخیره و مورد پردازش قرار داد .
 
[[رده:زبان برنامه نویسی سی]]