ارسال آرگومان به تابع توسط اشاره گر

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

#include <iostream.h>
 
void callByPointer( int * );
 
int main()
{
  int number = 5;
 
  cout << "The original value of number is " << number;
 
  // pass address of number to callByPointer
  callByPointer( &number );
 
  cout << "\nThe new value of number is " 
       << number << endl;
 
  return 0;
}
 
void callByPointer( int *nPtr )
{
  *nPtr = *nPtr * *nPtr * *nPtr; // cube *nPtr
}
 

خروجی برنامه فوق به صورت زير می باشد :

The original value of number is 5
The new value of number is 125

   همانطور که در برنامه فوق مشاهده می کنيد ، برای ارسال آرگومان به تابع توسط اشاره گر ، در پيش تعريف تابع پس از مشخص کردن نوع آرگومان از علامت * استفاده می کنيم و در تعريف تابع نيز علامت * را قبل از نام آرگومان اشاره گر قرار می دهيم . ضمناً از آنجا که اشاره گرها آدرس متغيرها را در خود قرار می دهند برای ارسال آرگومان توسط اشاره گر به يک تابع ، هنگام فراخوانی تابع بايد نام متغير ارسالی را همراه علامت & به کار ببريم چون تنها در اين صورت آدرس متغير ارسال می گردد .

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 
 

حق کپی رایت محفوظ می باشد