خانه / دوره آموزش مقدماتی C و ++C / قسمت بیست و پنجم آموزش C – اعمال روی اشاره گرها

قسمت بیست و پنجم آموزش C – اعمال روی اشاره گرها

اعمالی که بر روی اشاره گرها فایل انجام است به وسعت اعمالی که بر روی سایر متغیرهای حافظه انجام پذیر است ، نیست . اعمالی که بر روی اشاره گرها انجام پذیرند عبارتند از :

۱ – عمل انتساب : همچون سایر انواع متغیرها، میتوان مقداری را به یک اشاره گر نسبت داد .
۲ – اعمال محاسباتی : دو نوع اعمال محاسباتی می توان بر روی اشاره گرها انجام داد که عبارتند از :

الف ) عمل جمع .
ب ) عمل تفریق .

مثال ۱:

#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");

مقایسه اشاره گرها معمولا در مواردی استفاده می شود که دو یا چند اشاره گر به اشاره می کنند .

نقد و بررسی

User Rating: ۴٫۶۴ ( ۲ votes)

درباره ی آریـان پــور

سلام . آریــان پور هستم . از نویسندگان میکروپـدیا .. علاقه مــند به برنامه نویسی و طراحی وب و شبکه ! دیدگاه ها و نظرات شما دوستان بررسی میشه و باعث دلگرمـی برای نوشتن مطالب بهتر و به روزتر . در تماس باشید با : aryanpour [at] micropedia [dot] ir با مـا همراه باشید ..

همچنین ببینید

قسمت بیست و سوم آموزش C – اشاره گرها

درک صحیح مفهوم اشاره گرها در زبان C بزرگترین موفقیت یک برنامه نویس است . …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پاسخ عبارت زیر را وارد کنید: *