عملگرهای اشاره گر ها

   عملگر آدرس (&) عملگری است که آدرس خانه حافظه عملوند خود را بر می گرداند .

int y=5;
int *yPtr;
yPtr = &y;

   دستورات فوق متغير y را از نوع int با عدد 5 مقدار دهی کرده و سپس yPtr ، اشاره گری به متغيری از نوع int تعريف می شود و سرانجام آدرس خانه حافظه y در yPtr قرار می گيرد .

   همانطور که در شکل فوق می بينيد ، yPtr حاوی آدرس خانه حافظه y می باشد .

برای آشنايی با نحوه استفاده از اشاره گرها به برنامه زير توجه کنيد :

#include <iostream.h>
 
void main ()
{
  int x = 5, y = 15;
  int *xPtr, *yPtr;
 
  xPtr = &x;
  yPtr = &y;
 
  cout << "The value of x is " << x
       << "\nThe address of x is " << &x 
       << "\nThe value of xPtr is " << xPtr;
 
  cout << "\n\nThe value of y is " << y
       << "\nThe address of y is " << &y 
       << "\nThe value of yPtr is " << yPtr;
 
  *xPtr = 10;
  cout << "\n\nx=" << x << " and y=" << y;
 
  *yPtr = *xPtr;
  cout << "\nx=" << x << " and y=" << y;
 
  xPtr = yPtr;
  cout << "\nx=" << x << " and y=" << y;
 
  *xPtr = 20;
  cout << "\nx=" << x << " and y=" << y;
}

   خروجی برنامه فوق به صورت زير می باشد :

The value of x is 5
The address of x is 0x8fb4fff4
The value of xPtr is 0x8fb4fff4
 
The value of y is 15
The address of y is 0x8fb4fff2
The value of yPtr is 0x8fb4fff2
 
x=10 and y=15
x=10 and y=10
x=10 and y=10
x=10 and y=20

   در برنامه فوق دو متغير x وy از نوع عدد صحيح تعريف شده و x حاوی 5 و y حاوی 15 می گردد سپس xPtr و yPtr اشاره گری به عدد صحيح تعريف می شوند .

xPtr = &x;
yPtr = &y;

   دو دستور فوق همانطور که در خروجی برنامه نيز می بيند ، آدرس خانه حافظه x را در xPtr و آدرس خانه حافظه y را در yPtr قرار می دهد .

   دستور *xPtr = 10; در خانه ای از حافظه که xPtr اشاره می کند ( يعنی متغير x ) عدد 10 را قرار می دهد سپس*yPtr = *xPtr; مقدار خانه حافظه ای که xPtr به آن اشاره می کند را در خانه ای از حافظه که yPtr به آن اشاره می کند قرار می دهد يعنی مقدار متغير x در متغير y قرار می گيرد .

   دستور xPtr = yPtr; مقدار yPtr را که همان آدرس خانه حافظه y می باشد در xPtr قرار می دهد پس با اجرای اين دستور xPtr ديگر به x اشاره نمی کند بلکه به y اشاره خواهد کرد ، لذا با اجرای دستور *xPtr = 20; همانطور که مشاهده می کنيد x حاوی 20 نمی شود بلکه اين مقدار y است که به 20 تغيير می يابد .

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 
 

حق کپی رایت محفوظ می باشد