loading...
دانلود سرای دانشجویی

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

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

اعلان و استفاده اشاره گر به تابع درنظر اول کمی متفاوت است ولی از همان قاعده تبعيت می کند. برای اعلان اشاره گر به تابع نام تابع درون پرانتز قرار می گيرد و قبل از آن علامت * قرار می گيرد. مشابه زير:

datatype (*pointerToFunction) (pElement) = NULL ;

*pointerToFunxtion اشاره گر به تابع است که درون پرانتز بايد باشد. سمت چپ آن نوع برگشتی و سمت راست آن پارامترهای تابع قرار می گيرند. سپس با NULL مقداردهی می شود.


مثال. funcPtr اشاره گر به تابعی است که هيچ آرگومان و مقدار برگشتی ندارد.

void (*funcPtr)() = NULL ;


مشابه آرايه ها، برای بدست آوردن آدرس تابع نيازی به عملگر آدرس & نيست. فراخوانی تابع توسط اشاره گر مشابه فراخوانی عادی تابع است.


مثال. متغير p اشاره گری به تابع square است. تابع به دو طريق فراخوانی شده است که خروجی هر دو فراخوانی يکسان است.

#include <iostream.h>
double square(double x); // The function prototype.
double (*p)(double x) = NULL; // The pointer declaration.
main() {
   p = square; // Initialize p to point to square().
   Cout << square(6) << p(6));
   return(0);
}
double square(double x) {
return x * x;
}


اشاره گر وپارامتر مرجع

همانطور که قبلا در بخش تابع گفته شد آرگومان به دو صورت مقداری و مرجع می تواند به تابع ارسال شود. در حالت مرجع آدرس آرگومان به تابع داده مي شود اين کار بسادگي با اضافه کردن علامت & (عملگر ادرس) قبل از پارامتر در خط اعلان تابع انجام مي شود.


ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
آمار سایت
  • کل مطالب : 4247
  • کل نظرات : 0
  • افراد آنلاین : 7
  • تعداد اعضا : 2927
  • آی پی امروز : 160
  • آی پی دیروز : 199
  • بازدید امروز : 759
  • باردید دیروز : 1,059
  • گوگل امروز : 9
  • گوگل دیروز : 19
  • بازدید هفته : 5,555
  • بازدید ماه : 33,453
  • بازدید سال : 248,832
  • بازدید کلی : 8,427,526
  • کدهای اختصاصی