اعمال روی اشاره گرها
اعمالی که بر روی اشاره گرها فایل انجام است به وسعت اعمالی که بر روی سایر
متغیرهای حافظه انجام پذیر است ، نیست . اعمالی که بر روی اشاره گرها انجام
پذیرند عبارتند از : ۱
عمل انتساب : همچون سایر انواع متغیرها، میتوان مقداری را به یک اشاره گر
نسبت داد ( مثال ۱ ) . ۲
اعمال محاسباتی : دو نوع اعمال محاسباتی می توان بر روی اشاره گرها انجام
داد که عبارتند از :
الف ) عمل جمع .
ب ) عمل تفریق .
مثال ۱: main)(
{
int x ;
int *p1 / *p2 ;
p1=&x ;
p2=p1 ;
printf(“\n the address of x is: “);
printf(“%p”/p2 );
}
نمونه ای از خروجی برنامه مثال ۱ : the address of x is:692B:0fDC
برای پی بردن به چگونگی عمل جمع و تفریق روی اشاره گرها فرض کنید که p
اشاره گری از نوع ” صحیح ” است و به ملح ۲۰۰۰ حافظه اشاره می کند . اکنون دستور p + +;
را اجرا کنیم محتویات جدید اشاره گر p ، برابر با ۲۰۰۲ خواهد بود . زیرا
طول نوع ” صحیح ” برابر با ۲ بایت است و با افزایش یک واحد به اشاره گر ، به
اندازه طول نوع اشاره گر به آن افزوده خواهد شد و نه به اندازه یک واحد . اگر
دستور ; – p- را صادر کنیم ، اشاره گر P مجددا” به محل ۲۰۰۰ حافظه اشاره خواهد
کرد . اگر باز هم دستور ; – p- را صادر کنیم این بار به محل ۱۹۸۸ اشاره خواهد
کرد ( شکل ۱ ) . char *ch= 2000;
int *i=2000;
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch | 2000 | i
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+1 | 2001 |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+2 | 2002 | i+1
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+3 | 2003 |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+4 | 2004 | i+2
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ ch+5 | 2005 |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
حافظه
شکل (۱) . انجام اعمال محاسباتی روی اشاره گر
۳
مقایسه اشاره گرها : بااستفاده از عملگرهای رابطه ای می توان اشاره گرها را
با یکدیگر مقایسه نمود. بعنوان مثال ، اگر pو qو از نوع اشاره گر باشند ، دستور
زیر معتبر است : if(p < q )print f(“p points to lower memory than q”);
مقایسه اشاره گرها معمولا” در مواردی استفاده می شود که دو یا چند اشاره گر به اشاره می کنند .
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن