یک متغیر، یک محل ذخیره سازی با نام مشخص است که برنامه از آن استفاده می کند. هر متغیر در ++C دارای یک نوع مشخص است که تعیین کننده اندازه و آرایش آن در حافظه، محدوده مقادیری که می توان در حافظه ذخیره کرد و مجموعه عملیاتی که می توان روی آن متغیر انجام داد می باشد.
نام متغیر می تواند شامل حروف، ارقام و کارکتر زیرخط باشد.نام یک متغیر باید با یک حرف یا کارکتر زیرخط آغاز شود. از آنجایی که ++C به حروف کوچک و بزرگ حساس است باید به آنها در نام متغیرها دقت کرد.
پیش نیازهایی برای مطالعه
همانند آنچه در فصل پیش ذکر شد، جدول زیر نوع متغیرهای اصلی در ++C را لیست کرده است.
ردیف |
نوع و توصیف آن |
1 |
bool مقدار true یا false را ذخیره می کند |
2 |
char عموماً یک اکتاو(1 بایت) است. نوع آن عدد صحیح است. |
3 |
int معمول ترین سایز عدد صحیح در هر سیستم می باشد. |
4 |
float ممیزشناور با دقت معمولی است. |
5 |
double ممیزشناور با دقت مضاعف می باشد |
6 |
void عدم وجود یک نوع خاص را بیان می کند. |
7 |
wchar_t نوع داده کارکتر پهن |
++C همچنین امکان تعریف انواع دیگر نوع اداده را فراهم می کند که در بخش های Enumeration، Pointer, Array, Reference ، Data structuresوClasses به تفصیل راجع به آنها صحبت خواهیم کرد.
در بخش بعدی، تعریف، اعلان و استفاده از متغیرهای مختلف را توضیح می دهیم.
تعریف متغیر در ++C
تعریف متغیر، به کامپایلر اطلاع خواهد داد که چه مقدار فضا در چه مکانی از حافظه برای ایجاد متغیر درنظر بگیرد. تعریف متغیر شامل نوع داده و لیستی از یک یا چند متغیر به شکل زیر است
type variable_list;
در این عبارت، type باید یک نوع داده مجاز در ++C مانند char، w_char، int، float، double، bool و یا هر شی تعریف شده از طرف کاربر باشد. Variable_list ممکن است از یک یا چند شناسه که با کاما از هم جدا می شوند تشکیل شده باشد. در زیر چندمثال مجاز از اعلان متغیر آمده است:
int i, j, k; char c, ch; float f, salary; double d;
خط int i, j, k; متغیرهای i، j و k را تعریف و اعلان می کند؛ یعنی به کامپایلر دستور می دهد که متغیرهایی با نام های i، j و k و نوع int ایجاد کند. متغیرها را می توان در هنگام اعلان مقداردهی اولیه(اختصاص یک مقدار آغازین) کرد. مقداردهی اولیه شامل یک علامت مساوی و به دنبال آن یک عبارت به شکل زیر است:
type variable_name = value;
چندمثال:
extern int d = 3, f = 5; // declaration of d and f. int d = 3, f = 5; // definition and initializing d and f. byte z = 22; // definition and initializes z. char x = 'x'; // the variable x has the value 'x'.
تعریف بدون مقداردهی اولیه: متغیرهای ایستا(static) به صورت ضمنی به مقدار NULL (همه بایت ها مقدار 0 دارند)آغاز می شوند؛ مقدار آغازین بقیه متغیرها تعریف نشده است.
اعلان متغیرها در ++C
اعلان یک متغیر به کامپایلر این اطمینان را می دهد که متغیری با نام و نوع مشخص وجود داشته و به این ترتیب کامپایلر بدون نیاز به جزئیات بیشتر راجع به آن متغیر، به کامپایل کردن برنامه ادامه می دهد. اعلان یک متغیر تنها در زمان کامپایل معنادار است و هنگام لینک کردن برنامه کامپایلر به متغیرهای واقعی نیازمند است.
اعلان یک متغیر زمانی مفید است که شما چندین سورس فایل داشته و متغیر خود را در یکی از آن فایل هایی تعریف کنید که در زمان لینک کردن برنامه در دسترس است. از کلیدواژه extern برای اعلان یک متغیر در هر مکانی استفاده کنید. اگرچه می توان یک متغیر را در برنامه ++C چندین بار اعلان کرد، اما تنها می توان آن را یکبار در یک فایل، تابع یا بلوک تعریف کرد.
مثال
مثال زیر را که در آن یک متغیر در بالای برنامه اعلان شده اما درون تابع main تعریف شده است را ملاحظه کنید.
#include <iostream> using namespace std; // Variable declaration: extern int a, b; extern int c; extern float f; int main () { // Variable definition: int a, b; int c; float f; // actual initialization a = 10; b = 20; c = a + b; cout << c << endl ; f = 70.0/3.0; cout << f << endl ; return 0; }
زمانی که کد فوق کامپایل و اجرا می شود، نتیجه زیر را تولید خواهد کرد
30 23.3333
هنگام اعلان یک تابع نیز با همین مفهوم مواجه هستیم، یعنی زمانی که نام تابع را هنگام اعلان آن نوشته و تعریف آن را در جای دیگری فراهم می کنیم.برای مثال
// function declaration int func(); int main() { // function call int i = func(); } // function definition int func() { return 0; }
Ravlue و LValue
دو نوع عبارت در ++C وجود دارد
Lvalue – عبارتهایی که به مکانی از حافظه ارجاع می دهند عبارات “lvalue” خوانده می شوند. یک lvalue می تواند در سمت راست یا چپ یک عبارت تخصیص ظاهر گردد.
Rvalue – کلمه rvalue به مقداری اشاره می کند که در آدرسی از حافظه ذخیره می شوند.یک rvalue عبارتی است که نمی توان به آن مقداری تخصیص داد، یعنی یک rvalue را می توان در سمت راست یک عبارت تخصیص قرار داد اما نمی توان آن را در سمت چپ گذاشت.
متغیرها از نوع lvalue بوده و بنابراین ممکن است در سمت چپ یک عبارت تخصیص قرار گیرند.عبارات عددی rvalue بوده و بنابراین نمی توانند در سمت چپ ظاهر شوند. عبارت زیر یک عبارت مجاز می باشد
int g = 20;
اما عبارت زیر مجاز نیست و منجر به خطای زمان کامپایل می شود
10 = 20;
خب به پایان جلسه انواع متغیر در ++C رسیدیم توصیه میکنیم این موارد را تمرین کنید و جلسهی بعدی که بیشتر در مورد متغیرها یاد میگریم را در ادامه مطالعه کنید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.