شاید قبلا در مورد کاربرد دوگانه عملگر های & و * در زبان برنامه نویسی C++ صحبت کرده باشم ولی این پست یک یاداوری در مورد این دو عملگر است. این دو عملگر می توانند به صورت پیشوند یا پسوند به کار روند و در این صورت عملکرد های متفاوتی خواند داشت.


عملگر & به صورت پسوند نوع: (یا پیشوند متغیر در هنگام اعلان)
در این صورت، & برای تعریف یک نام مستعار یا تعریف یک پارمتر از نوع ارجاع به کار می رود. در زیر مثالی از موضوع را مشاهده می کنید.


تعریف یک نام مستعار برای یک متغیر :
int num = 100;
int& mirror = num;  // or :  int  &mirror = num; 

تعریف یک پارمتر به صورت ارجاع :
void Function (int& Parameter1);



عملگر & به صورت پشوند متغیر :
در این صورت این عملگر آدرس متغیر موردنظر را بر می گرداند. در زیر مثالی از این موضوع را مشاهد می کنید.



بازگرداندن آدرس یک متغیر :
int num = 100;
cout << & num;


عملگر * به صورت پسوند نوع : (یا پیشوند متغیر در هنگام اعلان) 

در این صورت این عملگر برای تعریف یک اشاره گر به کار می رود. در زیر مثالی از این موضوع را مشاهد می کنید.


تعریف یک اشاره گر :
int num = 100;
int* ptr = & num;  // or : int *ptr = & num;


عملگر * به صورت پشوند متغیر :
در این صورت این عملگر مقدار متغری که اشاره گر به آن اشاره می کند. برای مثال اشاره گری که در بالا تعریف کردیم را در نظر بگیرید.


بازگرداندن مقدار متغیری که اشاره گر به آن اشاره دارد :
cout << * ptr;