|
ارسال آرگومان به تابع توسط اشاره گر
|
تا به حال با دو روش ارسال آرگومانها به توابع آشنا شده ايد .
ارسال با مقدار و ارسال با ارجاع . در اين مبحث روش ديگری را که
ارسال توسط اشاره گر می باشد مورد بررسی قرار می دهيم . اشاره گرها
مانند آرگومانهای ارجاع می توانند برای تغيير يک يا چند متغير
ارسال شده از داخل تابع و يا برای ارسال داده های بزرگ به توابع
مورد استفاده قرار گيرند . در برنامه زير ، شيوه ارسال آرگومان
توسط اشاره گر به تابع مورد استفاده قرار گرفته است .
#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
همانطور که در برنامه فوق مشاهده می کنيد ، برای ارسال آرگومان به
تابع توسط اشاره گر ، در پيش تعريف تابع پس از مشخص کردن نوع
آرگومان از علامت * استفاده می کنيم و در تعريف تابع نيز
علامت * را قبل از نام آرگومان اشاره گر قرار می دهيم .
ضمناً از آنجا که اشاره گرها آدرس متغيرها را در خود قرار می دهند
برای ارسال آرگومان توسط اشاره گر به يک تابع ، هنگام فراخوانی
تابع بايد نام متغير ارسالی را همراه علامت & به کار ببريم
چون تنها در اين صورت آدرس متغير ارسال می گردد .
|