آموزش C++ انواع متغیرها

همانطور که از نام متغیرها پیداست، محلی برای ذخیره داده ها در حافظه با قابلیت نام گذاری هستند که می توانند توسط برنامه تغییر پیدا کند. در C++ هر متغیر یک نوع خاص دارد که اندازه و لایه آن را در حافظه مشخص می کند.
 در واقع محدوده ای از مقدارهایی که می توانند در آن حافظه ذخیره شوند و مجموعه عملیاتی که می تواند به آن متغیر اعمال شود.

نام یک متغیر باید حتما با یک حرف یا underscore ( _ ) شروع شود و نیز می تواند از مجموعه ای از حروف، اعداد و underscore ( _ ) تشکیل شده باشد. حروف بزرگ و کوچک متمایز هستند چرا که C++ نسبت به حروف حساس است.

همانطور که در قسمت قبل توضیح داده شد متغیرهای اصلی زیر در++C وجود دارند.

شماره نوع و توضیحات
1

bool

مقدار بولی ( true یا false را ذخیره میکند)

2

char

برای ذخیره داده های کاراکتری مانند : 'a' , 'z' , 'W' بکار می رود

3

int

برای ذخیره اعداد صحیح مانند 198، -4، 4568 استفاده می شود

4

float

برای ذخیره اعداد اعشاری مثل 52.5، 2765.11 بکار می رود

5

double

برای اعداد اعشاری بزرگتر از float استفاده می شود

6

void

هیچ مقداری را نمی گید. عدم وجود نوع داده ای را نشان می دهد

7

wchar_t

برای ذخیره بزرگ‌ترین میدان انواع کاراکترهای تعریف شده استفاده می شود


C++ همچنین اجازه می دهد تا انواع مختلفی از متغیرها مانند آرایه ها (array)، کلاس ها (classess)، اشاره گرها (pointer)، داده های شمارشی (enum) و ...  را تعریف کنیم که در قسمت های بعدی آنها را توضیح خواهیم داد.
در اینجا قصد داریم تا نحوه تعریف، declare و استفاده از انواع مختلف متغیر ها را توضیح دهیم.

تعریف متغیر در C++

هنگام تعریف یک متغیر در واقع به کامپایلر می گوید که کجا و چه مقدار از فضای حافظه برای ایجاد یک متغیر را نیاز داریم . با تعریف یک متغیر نوع آن را مشخص میکنیم که شامل یک یا چند متغیر از همان نوع است.

یک متغیر در C++ به صورت زیر تعریف می شود:

type variable_list;

در اینجا type باید یک نوع داده ای معتبر باشد که شامل، char, w_char, int, float, double, bool، double و یا هر شی تعریف شده توسط کاربر است. variable_list ممکن است شامل یک یا چند شناسه یا نام باشد که توسط کاما جدا می شوند. برخی از declarations های معتبر در زیر آمده است
 

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

خط int 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'.


 

برای تعریف بدون یک initializer: متغیرهایی با طول ذخیره سازی استاتیک به طور ضمنی با NULL (تمام بایت ها مقدار 0 هستند) initialized می شوند؛ مقدار initial تمام متغیرهای دیگر تعریف نشده است.

 

اعلان (declare) یک متغیر در C++

در زمانیکه برنامه‌ حاوی چندین سورس فایل باشد و بخواهیم از یک متغییر سراسری در خارج از آن فایلی که تعریف شده (define) استفاده کنیم، باید آن متغییر را در جایی غیر از فایل اصلی اعلان کنیم.
اعلان یک متغیر کامپایلر را آگاه می کند که متغیری با نام و نوع داده ای خاص وجود دارد تا کامپایلر بتواند در ادامه بدون نیاز به جزئیات کامل در مورد متغیر آن را کامپایل کند. اعلان یک متغیر تنها در زمان کامپایل مفهوم دارد و کامپایلر در زمان اتصال به برنامه به متغیر واقعی تعریف شده نیاز دارد.اعلان متغیر زمانی مفید است که از چندین فایل استفاده می کنید و متغیرهای خود را در یکی از فایل هایی که در زمان اتصال برنامه در دسترس هستند، تعریف می کنید. برای اعلان یک متغیر می توانید از کلمه کلیدی extern در هر مکان استفاده منید که معمولا آن را در header برنامه استفاده می کنند. اگرچه شما می توانید یک متغیر را چند بار در برنامه C++ خود اعلان کنید، اما می توان آن را فقط یک بار در یک فایل، یک تابع یا یک بلوک از کد تعریف کرد.
مثال
مثال زیر را در نظر بگیرید که متغیر در بالا declare شده است، اما در داخل تابع اصلی تعریف شده است.

 

#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;
}

مفاهیم Lvalues و Rvalues

دو نوع عبارت در ++C وجود دارد:
Lvalue:  
آدرسی از حافظه است که قابلیت ذخیره کردن در آن وجود دارد. یک Lvalue ممکن است در سمت راست یا چپ یک تساوی قرار بگیرد. (مانند متغیرها که می توانند در هر دو طرف تساوی قرار بگیرند)
Rvalue:
آدرسی از حافظه است که تنها میتوان اطلاعات آن قسمت از حافظه را خواند و تغییری در آن ممکن نیست. (مانند اعداد که فقط می توانند در سمت راست یک تساوی قرار بگیرند و نمی توان مقداری را  به آن ها نسبت داد)

در مثال زیر متغیر g را میبینید که در دو طرف تساوی مورد استفاده قرار گرفته است
 

// متغیر ها می توانند در هر دو طرف تساوی قرار بگیرند
int g = 20;
int b = g;

در مثال زیر که همواره یک عبارت غلط است نمی توان یک عدد را به عددی دیگر نسبت داد.

10 = 20;

 

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

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