آموزش C

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

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

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

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

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

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

برای درک بهتر موضوع اشاره گر ptr را در نظر بگیرید و فرض کنید که به آدرس 1000 در حافظه اشاره می کند. در زبان برنامه نویسی C می توانیم عملیات زیر را بر روی اشاره گر prt اعمال کنیم:

زمانی که عملیات بالا انجام شود، اشاره گر ptr ما به آدرس 1004 اشاره می کند به این دلیل که از نوع integer می باشد و هر integer در حافظه 4 بایت اشغال می کند. حال اگر این اشاره گر از نوع کاراکتر (char) بود، یک واحد به آدرس اضافه می شد (یعنی 1001) زیرا نوع داده کار 1 بایت از حافظه را اشغال می کند.

افزایش اشاره گر

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

امتحان کنید

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

کاهش اشاره گر

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

امتحان کنید

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

مقایسه اشاره گرها

اشاره گرها را می توان با استفاده از عملگر ==، < و > با یک دیگر مقایسه کرد. اگر p1 و  p2 به متغیرهای مرتبط اشاره کنند، بنابراین می توان آن دو را با هم مقایسه کرد. به مثال زیر که تغییر یافته مثال بالاست توجه کنید، آدرس اشاره گر هر بار که حلقه اجرا می شود یک واحد افزایش می یابد و تا زمانی که آدرس قرار گرفته در اشاره گر با آدرس آخرین عنصر آرایه برابر نباشد، اجرای حلقه ادامه پیدا می کند.

امتحان کنید

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

 

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

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