اعمالی که بر روی اشاره گرها فایل انجام است به وسعت اعمالی که بر روی سایر متغیرهای حافظه انجام پذیر است ، نیست . اعمالی که بر روی اشاره گرها انجام پذیرند عبارتند از :
۱ – عمل انتساب : همچون سایر انواع متغیرها، میتوان مقداری را به یک اشاره گر نسبت داد .
۲ – اعمال محاسباتی : دو نوع اعمال محاسباتی می توان بر روی اشاره گرها انجام داد که عبارتند از :
الف ) عمل جمع .
ب ) عمل تفریق .
مثال ۱:
#include <stdio.h> #include <conio.h> void main() { int x ; int *p1 , *p2 ; p1=&x ; p2=p1 ; printf("\n the address of x is:"); printf("%p",p2); getch(); }
نمونه ای از خروجی برنامه مثال ۱ : the address of x is : 692BDC
برای پی بردن به چگونگی عمل جمع و تفریق روی اشاره گرها فرض کنید که p اشاره گری از نوع صحیح است و به محل ۲۰۰۰ حافظه اشاره می کند . اکنون دستور ++p را اجرا کنیم محتویات جدید اشاره گر p ، برابر با ۲۰۰۲ خواهد بود . زیرا طول نوع صحیح برابر با ۲ بایت است و با افزایش یک واحد به اشاره گر ، به اندازه طول نوع اشاره گر به آن افزوده خواهد شد و نه به اندازه یک واحد . اگر دستور –p را صادر کنیم ، اشاره گر P مجددا به محل ۲۰۰۰ حافظه اشاره خواهد کرد .
۳ – مقایسه اشاره گرها : بااستفاده از عملگرهای رابطه ای می توان اشاره گرها را با یکدیگر مقایسه نمود. بعنوان مثال ، اگر p و q از نوع اشاره گر باشند ، دستور زیر معتبر است :
if(p < q)printf("p points to lower memory than q");
مقایسه اشاره گرها معمولا در مواردی استفاده می شود که دو یا چند اشاره گر به اشاره می کنند .