Data Type ها، Declaration ها و تعریف متغیرها در #C
شناسه پست: 1766
بازدید: 1638

در #C، انواع data type ها به صورت متفاوتی ثبت شده اند. علاوه بر این، فقط اقدامات محدودی مجاز است که بر روی هریک از آنها اجرا شود. برای هریک از این data type ها، یک اندازه معینی از حافظه بر روی کامپیوتر ما رزرو شده است.

این مقاله، سرفصلی از دوره آموزشی زیر میباشد:

اگر می خواهید محتویات کامل این دوره را ببینید ، می توانید بر روی لینک مبانی #c کلیک کنید.

با هر data type که ما تعریف میکنیم با موارد زیر سرکار خواهیم داشت:

  • نحوه ثبت داده ها در حافظه
  • مقادیر مجاز برای داده ها
  • اقدامات مجاز برای داده ها

پس اجازه بدید بیشتر در مورد data type ها در #C صحبت کنیم.

در این مقاله ما قصد داریم موضوعات زیر را پوشش دهیم:

ثبت Data Type

Data type هایی که مجموع اعداد را نشان میدهند با تعداد معینی بیت بیان میشوند. برای اعداد بدون علامت، محدوده اعداد بین 0 تا 2N-1 و برای اعداد با علامت، محدوده اعداد بین 2N-1– تا 2N-1-1 میباشد. بنابراین اگر یک data type مانند sbyte که یک اندازه 8 بیتی دارد را میتوانیم محدوده آن را به این صورت نشان دهیم: از 27– تا 1-27 => از 128- تا 127.

جدول زیر شامل انواع data type ها میباشد که طیف اعداد را نشان میدهد:

طیف اعداد داده های عددی در #C

حرف u قبل از نوع داده بیانگر این است که data type نمیتواند شامل اعداد منفی باشد، به عبارتی آن بی علامت است.

کل data type های ذکر شده در بالا، مجموع data type های عددی میباشند. اما در #C ما نوع های داده ای دیگر به صورت اعشاری نیز داریم.

ما میتوانیم این نوع های داده ای اعشاری را در جدول زیر نمایش دهیم:

نوع های داده ای اعشاری در #C

در #C ما دو data type دیگر نیز داریم:

متغیر bool و char در #C

برای استفاده از نوع char، ما باید آن را داخل تک کوتیشن قرار دهیم: ‘a’ یا ‘A’ یا ‘3’…

یک نوع داده ای دیگر که به عنوان نوع داده ای پایه معرفی شده است نوع string  میباشد. اما string  یک value type نیست بلکه یک reference type است. برای استفاده از یک string در کد، ما باید مقدار را درون جفت کوتیشن قرار دهیم. مانند: “This is the string type” یا “3562”…

در حال حاضر ما میدانیم که دو نوع value type و reference type ها را داریم و حالا وقتشه که بیشتر در مورد آنها و همچنین متغیرها صحبت کنیم.

متغیرها در #C

متغیر نام یک مکان در حافظه است که اپلیکیشن، مقدار را درون آن ذخیره میکند.

ما باید متغیرها را مانند مثالهای زیر ایجاد کنیم:

  • studentName
  • subject
  • work_day …

تعریف متغیرها مانند مثالهای زیر اشتباه میباشد:

  • student Name
  • work-day
  • 1place

ما باید این نکته را هم ذکر کنیم که #C یک زبان حساس به حروف کوچک و بزرگ میباشد. بنابراین studentName  با StudentName یکی نمیباشد.

زبان #C مجموعه کلمات رزرو شده خود را دارد، به اصطلاح کلمات کلیدی هستند. ما از آنها به عنوان نام متغیر نمیتوانیم استفاده نماییم. برای مشاهده لیست این کلمات، میتوانید لیست کلمات کلیدی را مشاهده نمایید.

در #C ما متغیرهایی داریم که به دو دسته تقسیم میشوند: Value type و Reference type. تفاوت بین آنها این است که متغیرهای value type، مقادیرشان را مستقیم درون مکان حافظه خودشان ذخیره میکنند اما مکان حافظه برای متغیرهای  reference type، فقط شامل آدرس مربوط به مکانی از حافظه داینامیک میباشد که مقدار درون آن ذخیره شده است.

حالا نحوه رفتار یک value type را در شکل گرافیکی زیر مشاهده کنید:

value type در #C

حال نحره رفتار یک reference type را در شکل زیر مشاهده کنید:

نحوه رفتار یک reference type در #C

Variable Declaration ها و Expression ها

ما باید متغیرهایمان را به شیوه زیر تعریف کنیم:

بنابراین به چند نمونه زیر توجه کنید:

فقط با تعریف متغیر، ما نمیتوانیم یک مقدار را به یک متغیر value type اختصاص دهیم. برای انجام این کار، ما باید علاوه بر تعریف، از expression ها استفاده نماییم:

برای این منظور، مجددا به مثال قبلی از منظر زیر توجه کنید:

برای اختصاص دادن مقدار به متغیر reference type باید از کلمه کلیدی new در قسمت expression  استفاده کنید(نوع string مستثنا از این امر است):

قابل ذکر است که ما توصیه نمیکنیم که از نامهایی مانند x یا y … برای نام گذاری متغیرها استفاده نمایید. ما فقط از این نامها برای سادگی مثالهایمان استفاده کردیم. بهتر است که از نامهای با مسما و با معنی برای متغیرهایمان استفاده کنیم.

نتیجه گیری

حالا ما یاد گرفتیم که چطور متغیرهایمان را تعریف کنیم و همچنین مقادیر را به آنها اختصاص دهیم.

در مقاله بعدی ما در مورد عملگرها در #C صحبت خواهیم کرد.

نویسنده

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