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

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

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

۱ – عمل تخصیص حافظه پویا امکان پذیر است .

۲ – موجب بهبود کارآیی بسیاری از توابع می شود .

۳ – کار با رشته ها و آرایه ها را آسانتر می کند .

۴ – فراخوانی با ارجاع در توابع ، از طریق اشاره گرها امکان پذیر است .

کلیه متغیرهایی که در برنامه ها مورداستفاده قرار میگیرند در حافظه کامپیوتر ذخیره می شوند ( محل هایی از حافظه هستند ) . بنابراین هر متغیر دارای یک آدرس منحصر بفردی است که توسط آن می توان به متغیر دسترسی پیدا کرد. اشاره گرها حاوی آدرس متغیرهای حافظه هستند. بعبارت دیگر اگر متغیری آدرس متغیر دیگر را در خود نگهداری کند به متغیر اول یک اشاره گر گفته می شود . بعنوان مثال ، اگر محتویات متغیری که در محل ۱۰۰۰ حافظه قرار دارد برابر با ۱۰۰۴ باشد ، این متغیر به محل ۱۰۰۴ حافظه اشاره خواهد کرد .

برای تعریف متغیرهای اشاره گر از روش کلی زیر استفاده می شود :
نام متغیر اشاره گر * نوع

نوع ، یکی از انواع معتبر در زبان C است . نوع اشاره گر مشخص می کند که این اشاره گر باید به چه نوع داده ای اشاره کند ( سر و کارش با چه نوع داده ای است ). در زبان C برخلاف زبان هایی مثل PL/I اشاره گرها دارای نوع هستند. لذا دراستفاده از اشاره گرها باید دقت کافی به خرج داد تا نتیجه نادرستی از برنامه حاصل نگردد . بعنوان مثال ، دستور ; int *p متغیر p را از نوع اشاره گر تعریف می کند که فقط باید به متغیرهای از نوع صحیح اشاره نماید. البته اگر اشاره گرp به متغیرهایی از انواع دیگر اشاره نماید ، کامپایلر زبان C خطایی را به برنامه نویس اعلام نمی کند ولی برنامه نویس باید بداند که این امر یقینا در نتیجه اجرای برنامه اثر گذاشته و موجب عدم صحت اجرای برنامه گشته و به نتایج حاصل از برنامه اطمینانی نیست . بعنوان مثال در حین اجرای برنامه زیر از طرف کامپایلر خطایی گزارش نخواهد شد ولی می دانیم که این برنامه نتیجه مطلوبی نخواهد داشت .

#include <stdio.h>
#include <conio.h>
void main()
{
int x,y;
int *p;
p=&x;
y=*p;
getch();
}

در برنامه فوق ، چون p به متغیر x اشاره میکند و p از نوع صحیح است ، x را بصورت عدد صحیح در نظر میگیرد و در دستور بعدی که محتویات محلی که p به را به y منتقل می کند، عمل انتقال به درستی انجام نمیشود.

نقد و بررسی

User Rating: ۲٫۲۲ ( ۳ votes)

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

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

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

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

این جلسه بسیار ساده و کوتاه خواهد بود. دو عملگر در مورد اشاره گرها مورد …

پاسخ دهید

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

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