تعریف انواع داده ها، متغیرها و عملگرها در زبان سی شارپ #C
اغلب برنامه ها با دریافت داده ها، پردازش آنها و استخراج نتایج سروکار دارند. بنابراین ،داده ها نقش مهمی در برنامه نویسی ایفا میکنند. هر زبان برنامه نویسی برای سرو کار داشتن با داده ها، انواعی را تدارک میبیند تا برنامه نویسان از آنها استفاده کنند.
#C زبانی با کنترل نوع قوی است. در چنین زبانی، نوع هر شی ءای که ایجاد میکنید، باید اعلان شود تا داده ها به درستی با یکدیگر ترکیب و پردازش گردند. در #C دو مجموعه از انواع داده ها وجود دارند:
• انواع داده اولیه (آنهایی که زبان پیشنهاد میکند)
• انواع داده ای که توسط برنامه نویس تعریف میشوند.
علاوه بر این در #C داده ها به دو دسته تقسیم میشوند:
• انواع مقداری (value type)
• انواع مرجع (reference type)
تفاوت اصلی بین انواع مقداری و انواع مرجع، چگونگی دخیره مقادیر آنها در حافظه است. توجه به نکات زیر مهم است:
1. تمام انواع اولیه به جز شیء object و string ، انواع مقداری اند.
2. تمامی انواعی که توسط برنامه نویس تعریف میشوند، به جز نوع ساختمان یا struct، از نوع مرجع اند.
♦ انواع داده اولیه
انواع اولیه ای که در #C آمده اند، به همراه اندازه آنها به بایت در جدول زیر آمده است. برخلاف ++C، در #C اندازه نوع int همیشه چهار بایت است.برای اینکه تصمیم بگیرید از کدام اندازه مقادیر صحیح استفاده کنید (int ، short یا long)باید به اندازه ای که میخواهید ذخیره نمایید، توجه کنید. بعنوان مثال نوع ushort فقط میتواند مقادیر از صفر تا 65535 را ذخیره نماید در حالیکه ulong میتواند مقادیر از صفر تا 2,294,967,295 را ذخیره کند. به عبارت دیگر باید نوع مورد نظرتان را طوری انتخاب کنید که کمترین حافظه را مصرف نماید.
انواع float، double و decimal اندازه و دقت های مختلفی دارند . برای بسیاری از اعداد کسری کوچک float کافیست. نوع char، کراکتر یونیکد را نشان میدهد.
انواع داده های اولیه در #C | |
نوع | اندازه |
byte | ۱ بایت |
char | ۱ بایت |
bool | ۱ بایت |
sbyte | ۱ بایت |
short | ۲ بایت |
ushort | ۲ بایت |
int | ۴ بایت |
unit | ۴ بایت |
float | ۴ بایت |
double | ۸ بایت |
decimal | ۸ بایت |
long | ۸ بایت |
ulong | ۸ بایت |
♦ متغیرها
متغیرها نامی برای کلمات حافظه اندکه داده ها در آنها قرار میگیرند و محتویات آنها ممکن است در طول اجرای برنامه تغییر کند. برای مراجعه به متغیرها از نامشان استفاده میشود. لذا متغیرها امکان نامگذاری برای کلمات حافظه را فراهم میکنند. برای نامگذاری متغیرها میتوان از ترکیبی از حروف a تا z یا A تا Z ، ارقام و خط ربط (_) استفاده کرد، به طوریکه اولین کراکتر آنها رقم نباشد. نام متغیر میتواند با هر طولی باشد ولی 31 کراکتراول آن مورد استفاده قرار میگیرد.
همانطور که گفته شد، متغیرها محل ذخیره داده ها هستند و چون داده ها دارای نوع اند، متغیرها نیز باید دارای نوع باشند. به عبارت دیگر متغیرهای فاقد نوعف در #C شناخته شده نیستند. قبل از بکار گرفتن متغیرها ، باید نوع آنها را مشخص کرد. نوع متغیر، مقادیری را که متغیر میتواند بپذیرد و اعمالی را مشخص میکند که میتوانند بر روی آن مقادیر انجام شوند. تعریف متغیر بصورت زیر انجام میشود:
modifier نام متغیر نوع داده;
modifier دستیابی به متغیرها را کنترل میکند که مهمترین آنها public و private میباشند. public موجب دستیابی عمومی به متغیر و private موجب دستیابی اختصاصی به متغیر میشود. استفاده از modifier اختیاری است و اگر ذکر نشود private منظور خواهد شد.
برای مقدار دادن به متغیرها به سه روش میتوان عمل کرد:
1. هنگام تعریف (تعیین نوع ) متغیر
2. پس از تعریف نوع متغیر و با دستور انتساب (=)
3. دستورات ورودی
با استفاده از واژه new نیز میتوان در هنگام تعریف متغیر، مقدار پیش فرض را به آن نسبت داد.
♦ عملگرها
عملگرها نمادهایی هستند که اعمال خاصی را انجام میدهند. بعنوان مثال، نماد '+' عملگری است که دو مقدار را با هم جمع میکند. پس از اعلان متغیرها و مقدار دادن به آنها باید بتوان عملیاتی را روی آنها انجام داد. برای انجام این عملیات باید از عملگرها استفاده کرد. عملگرها روی یک یا دو مقدار عمل میکنند. مقادیری را که عملگرها روی آنها عمل میکنند، عملوند گویند. عملگرهایی که بر روی یک عملوند عمل میکنند، یکانی و عملگرهایی که بر روی دو عملوند عمل میکنند، دودویی می نامند.
♦ عملگرهای محاسباتی
هریک از عملگرهای - ، +، * و / تقریبا در همه زبانها وجود دارد. عملگر % برای محاسبه باقیمانده تقسیم به کار میرود. این عملگر ، عملوند اول را بر دوم تقسیم میکند (تقسیم صحیح) و باقیمانده را بر میگرداند. عملگر کاهش (--) یک واحد از عملوندش کم میکند و نتیجه را در آن عملوند قرار میدهد و عملگر افزایش (++) یک واحد به عملوندش اضافه میکند. عملگر افزایش و کاهش چه قبل از عملوند باشند و چه بعد از آن، عملکرد آنها یکسان است. اما عملکرد آنها در عبارات محاسباتی با هم متفاوت است.
♦ عملگرهای رابطه ای
عملگرهای رابطه ای، رابطه بین عملوندها را مشخص میکنند. اعمالی مثل تساوی دو مقدار، کوچکتر یا بزرگتر بودن، مقایسه با صفر و غیره، توسط عملگرهای رابطه ای مشخص میشوند. عملگرهای رابطه ای شامل < ،=< ، > ، => ، == و =!. عملگر '==' در دستورات شرطی برای مقایسه دو مقدار مورد استفاده قرار میگیرد.
♦ عملگرهای منطقی
عملگرهای منطقی بر روی عبارات منطقی عمل میکنند. عبارات منطقی دارای دو ارزش درستی و نادرستی اند. در زبان #C ، ارزش نادرستی با مقدار صفر و ارزش درستی با مقدار غیر صفر مشخص میشود. روش دیگر تعیین مقادیر درستی و نادرستی، استفاده از ثوابت true و false است. true به معنی ارزش درستی و false به معنی نادرستی است. عملگرهای منطقی به ترتیب تقدم عبارتند از: ! ، && ، || .
♦ عملگرهای ترکیبی
از ترکیب عملگرهای محاسباتی و عملگر '=' ، مجموعه دیگری از عملگرها ایجاد میشودکه عمل محاسباتی و انتساب را انجام میدهد. این عملگرها عبارتند از: =+، =- ، =* ، =/ و =% . تقدم این عملگرها پایینتر از سایر عملگرهاست.
♦ عملگرهای بیتی
وجود عملگرهای بیتی در #C موجب شد تا بسیاری از کارهای زبان اسمبلی در #C انجام شود. عملگرهای بیتی برای تست کردن، مقدار دادن یا شیفت دادن و سایر اعمال بر روی مقادیری به کار میروند که در یک بایت (char) یا کلمه (int) ذخیره شده اند. عملگرهای بیتی را نمیتوان با انواع float, double, long double و void یا سایر انواع پیچیده به کار برد. عملگرهای بیتی عبارتند از: & ،| ، ^ ، ~ ، << ، >> .
♦ عملگر sizeof
این عملگر, یک عملگر زمان ترجمه است و میتواند طول یک متغیر یا نوع داده را برحسب بایت تعیین کند. این عملگر بصورت زیر بکار میرود:
sizeof متغیر;
sizeof (نوع داده);
لینک کوتاه این پست : https://goo.gl/9yyAvL