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

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

c pointers 4143 اشاره گر ها در زبان C   آموزش زبان C

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

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

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

امتحان کنید

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

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

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

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

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

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

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

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

امتحان کنید

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

اشاره گر NULL

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

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

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

امتحان کنید

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

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

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

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

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

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

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

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

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

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

۳اشاره گر به اشاره گر

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

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

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

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

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


باکس دانلود
شناسه:
۴۱۴۳
لینک دانلود:
روی دکمه G+1 برای محبوب کردن سایت کلیک کرده سپس از لینک زیر دانلود را انجام دهید
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

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