آموزش C++ اشاره گرها

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

 

#include <iostream>

using namespace std;
int main () {
   int  var1;
   char var2[10];

   cout << "Address of var1 variable: ";
   cout << &var1 << endl;

   cout << "Address of var2 variable: ";
   cout << &var2 << endl;

   return 0;
}

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

Address of var1 variable: 0xbfebd5c0
Address of var2 variable: 0xbfebd5b6

اشاره گر چیست؟

 اشاره گر یک متغیر است که مقدار آن آدرس متغیر دیگری است. مانند هر متغیر یا ثابت، قبل از اینکه بتوانید با آن کار کنید، باید اشاره گر را اعلان کنید. فرم کلی اعلان یک متغیر اشاره گر به شکل زیر است:

type *var-name;

در این جان نوع همان نوع پایه اشاره گر است که باید نوعی معتبر در C++ باشد و var-name نام متغیر اشاره گر است. علامت ستاره همان علامتی است که برای ضربه استفاده می شود اما در اینجا برای اعلان نشانه گر استفاده می شود. نحوه اعلان یک نشانه گر در مثال زیر ارائه شده است :
 

int    *ip;    // pointer to an integer
double *dp;    // pointer to a double
float  *fp;    // pointer to a float
char   *ch     // pointer to character

نوع داده واقعی مقدار تمام نشانگرها چه عدد صحیح، اعشاری و یا غیره باشند، یکسان است و آن یک عدد طولانی hexadecimal است که آدرس حافظه را نشان می دهد. تنها تفاوت انواع داده ی نشانگرها نوع داده ای متغیر ها و یا ثابت هایی است  که اشاره گر به آن اشاره می کند.

 نحوه استفاده از اشاره گر در C++

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

#include <iostream>

using namespace std;

int main () {
   int  var = 20;   // actual variable declaration.
   int  *ip;        // pointer variable 

   ip = &var;       // store address of var in pointer variable

   cout << "Value of var variable: ";
   cout << var << endl;

   // print the address stored in ip pointer variable
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // access the value at the address available in pointer
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

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

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

جزئیات بیشتر از اشاره گر ها

 اشاره گرها مفاهیم بسیار زیاد اما آسانی برای برنامه‌نویسی دارند که بسیار مهم هستند. بخشی از مفاهیم مهم و واضح در مورد اشاره گرها در جدول زیر ارائه شده است.

ردیف توضیحات
1 اشاره گر null
اشاره گر null در زبان برنامه نویسی C++ پشتیبانی می شود که یک ثابت با مقدار صفر است که در چندین کتابخانه استاندارد C++ تعریف شده است.
2 اشاره گر ریاضی
4 عملگر ریاضی وجود دارد که می توانید در اشاره گرها از آن ها استفاده کنید:
++،--،+،-
3 اشاره گرها و آرایه ها
رابطه بسیار نزدیکی بین آرایه ها و اشاره گرها وجود دارد.
4  آرایه ای از اشاره گر ها
می توانید آرایه ای برای ذخیره تعدادی از اشاره گر ها تعریف کنید.
5 اشاره گر به اشاره گر
می توانید اشاره گری تعریف کنید که به یک اشاره گر دیگر اشاره می کند.
6 ارسال اشاره گر ها به توابع
یک اشاره گر را می توان به عنوان آرگومان یک تابع فراخوانی شده ارسال کرد.
7  بازشگت اشاره گر از توابع
یک تابع می تواند اشاره گر را به متغیر محلی و یا استاتیک بازگرداند و به طور خودکار به آن حافظه اختصاص دهد.

 

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

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

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