PDA

View Full Version : تفاوت بین ارسال از طریق ارجاع با ارسال از طریق آدرس در یه تابع؟؟؟؟



md3848
سه شنبه 27 بهمن 1394, 06:47 صبح
سلام ممنون میشم دوستان راهنمایی کننالبته این که اولی و دومی برا C++‎ هستش و دومی برا c و این که تو ارجاع میایم یه متغییر تعریف میکنیم و تو اون یکی میایم یه اشاره گر تعریف میکنیم و .... رو میدونمتفاوت و فرق دقیقشون رو میخوام تا بدونم که در کجا کدوم مناسبه و .... تا از مناسب ترینشون استفاده کنم.

K-FIVE
سه شنبه 27 بهمن 1394, 10:27 صبح
هر دو نوع اجرا یکی هست تقربا با کمی ظاهر متفاوت
اساسا دو روش دست یابی به داده هست
1. اینکه از داده ای که در حاظه داریم / ی کپی بگیرم و روی اون کار رو انجام بدیم
2. اینکه مسقیم روی خود داده کار انجام بدیم (بدون کپی)

خب برای داده های بزرگ عملا کپی کردن هزینه بر هست / زمان و اجرا و ...
خود از روش در 2 حالت انجام میشه
یک اینکه ادرس اون داده در حاظه رو در یک متغییر ارجاع ذخیره کنی
دو اینکه ادرس اون داده رو در یک متغییر اشاره گری ذخیره کنی

اساسا یکی هست و با وجود اشاره گر کمتر از ارجاعی استفاده میشه
ارجاعی :
int a = 10
int &b = a
الان b ارجاعی از a است

اشاره گری:
int a = 10
int* b = &a
الان b حاوی ادرس شناخته شده برای دسترسی به a است

به علت اینکه اشاره گر انعطاف خ بیشتری داره / استفاده بیشتری هم ازش میشه / اما خب خ زمان میبره مسلط بشی