آموزش C

مباحث پایه زبان C

اشاره گر ها در زبان C – آموزش زبان C

  • پنجشنبه ۲۹ شهریور ۱۳۹۷
  • بازدید ۶,۲۶۸ نفر

تصویر c-pointers_4143 اشاره گر ها در زبان C - آموزش زبان C

اشاره گر ها در زبان C

اشاره گرها یکی از مباحث آسان و سرگرم کننده زبان برنامه نویسی C برای یادگیری هستند. با استفاده از اشاره گرها انجام برخی از کارها بسیار راحتر می شود. همچنین انجام برخی از کارها نظیر تخصیص حافظه پویا بدون استفاده از اشاره گرها امکان پذیر نیست. بنابراین یادگیری این مبحث برای تبدیل شدن به یک برنامه نویسی حرفه ای لازم است.

همانطور که می دانید، هر متغیر یک مکان در حافظه است و هر مکان در حافظه دارای آدرسی است که با استفاده از عملگر & می توان به آن آدرس دسترسی داشت. مثال زیر را در نظر بگیرید که آدرس متغیرها را چاپ می کند:

امتحان کنید

زمانی که کد بالا توسط کامپایلر C و اجرا شود، نتیجه زیر را تولید خواهد کرد:

اشاره گر چیست؟

اشاره گر متغیری است که آدرس متغیر دیگر را در خود ذخیره می کند. منظور از آدرس، محلی از حافظه است که متغیر در آن قرار دارد. مانند سایر متغیرها یا ثابت ها اشاره گرها هم باید قبل از استفاده تعریف شوند. شکل کلی تعریف یک اشاره گر به صورت زیر است:

در اینجا، type نوع اشاره گر است و باید یکی انواع داده معتبر در زبان C باشد. نام گذاری اشاره گرها از قوانین نام گذاری متغیر پیروی می کند. علامت * همان علامتی است که برای ضرب استفاده می شود اما در اینجا برای تعریف یک اشاره گر استفاده شده است.

چند نمونه از اعلان های معتبر اشاره گر در زبان C:

نحوه استفاده از اشاره گرها

چند عملیات مهم وجود دارد که اغلب با استفاده از اشاره گرها انجام می دهیم. (الف) یک متغیر اشاره گر را تعریف کنیم، (ب) آدرس متغیر را به یک اشاره گر اختصاص دهیم و (پ) در نهایت به مقداری که در آدرس موجود در اشاره گر قرار دارد، دسترسی پیدا کنیم. این کار با استفاده از عملگر * انجام می شود که مقداری که در آدرس حافظه قرار دارد را برمیگرداند.

مثال زیر نحوه استفاده از اشاره گرها را نشان می دهد:

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

اشاره گر NULL

همواره یکی از کار های خوب در هنگام استفاده از اشاره گرها، تخصیص مقدار NULL به آن ها می باشد. البته این کار زمانی که درست است که شما هیچ آدرس دقیق و معینی برای تخصیص به اشاره گر خود ندارید. اشاره گری که با NULL مقدار دهی شود، اشاره گر NULL نامیده می شود.

اشاره گر NULL یک ثابت است که در چندین کتابخانه استاندارد زبان C با مقدار صفر مشخص شده است.

برنامه زیر را در نظر بگیرید:

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

در اغلب سیستم عامل ها، برنامه ها نمی توانند به آدرس حافظه 0 دسترسی داشته باشند، زیرا این آدرس توسط سیستم عامل رزرو شده است. با این وجود، آدرس حافظه 0 اهمیت خاصی دارد؛ این آدرس نشان می دهد که اشاره گر به محلی از حافظه که قابل دسترسی باشد اشاره نمی کند. به طور کلی اگر یک اشاره گر به آدرس حافظه 0 اشاره کند، می گویند این اشاره گر به هیچ چیزی اشاره نمی کند.

برای چک کردن این که آیا یک اشاره گر به محلی از حافظه اشاره می کند (NULL نیست) یا نه، می توانید به صورت زیر عمل کنید:

دستور اول NULL نبودن اشاره گر و دستور دوم NULL بودن آن را بررسی می کند.

جزئیات بیشتر در مورد اشاره گرها

مبحث اشاره گرها بسیار بزرگ است اما هر برنامه نویس باید به خوبی با آن آشنا باشد تا بتواند نیاز های خود را برطرف کند. در جدول زیر چند شکل دیگر استفاده از اشاره گرها در زبان C را مشاهده می کنید:

ردیفمفهوم و توضیحات
1اشاره گر ریاضی

چهار عملگر ریاضی در زبان C وجود دارد که می توان در هنگام استفاده از اشاره گرها از آن ها استفاده کرد: ++، -، +، –

2آرایه ای از اشاره گرها

شما می توانید آرایه ای تعریف کنید که مجموعه ای اشاره گرها را در خود نگه داری کند.

3اشاره گر به اشاره گر

در زبان C می توانید اشاره گری تعریف کنید که به یک اشاره گر دیگر اشاره کند.

4ارسال اشاره گر با تابع

در زبان برنامه نویسی C شما می توانید یک اشاره گر را به عنوان آرگومان به یک تابع ارسال کنید.

5بازگشت اشاره گر از تابع

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

 

باکس دانلود
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است