مهندس موفق الکترونیک

انواع متغیر در ++C

یک متغیر، یک محل ذخیره سازی با نام مشخص است که برنامه از آن استفاده می کند. هر متغیر در ++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

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

تعریف متغیر در ++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

اعلان متغیرها در ++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 وجود دارد

مطلب پیشنهادی:  دامنه متغیرها در ++C

Lvalue – عبارتهایی که به مکانی از حافظه ارجاع می دهند عبارات “lvalue” خوانده می شوند. یک lvalue می تواند در سمت راست یا چپ یک عبارت تخصیص ظاهر گردد.

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

متغیرها از نوع lvalue بوده و بنابراین ممکن است در سمت چپ یک عبارت تخصیص قرار گیرند.عبارات عددی rvalue بوده و بنابراین نمی توانند در سمت چپ ظاهر شوند. عبارت زیر یک عبارت مجاز می باشد

int g = 20;

اما عبارت زیر مجاز نیست و منجر به خطای زمان کامپایل می شود

10 = 20;

خب به پایان جلسه انواع متغیر در ++C رسیدیم توصیه می‌کنیم این موارد را تمرین کنید و جلسه‌ی بعدی که بیشتر در مورد متغیرها یاد میگریم را در ادامه مطالعه کنید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *