تالار گفتمان مانشت
شبیه سازی فراخوانی با ارجاع توسط بقیه تکنیک ها - نسخه‌ی قابل چاپ

شبیه سازی فراخوانی با ارجاع توسط بقیه تکنیک ها - sepid - 19 دى ۱۳۸۹ ۰۲:۳۲ ب.ظ

شبیه سازی تکنیک انتقال پارامتر Call By Reference توسط بقیه تکنیک های انتقال پارامتر:
من تو جزوه قبایی خوندم که فراخوانی با ارجاع معادل فراخوانی با مقدار-نتیجه هست از دید کاربر.
اما توی تست سال ۸۴ دیدم که این رو گزینه صحیح نگرفته.
تو گزینه‌ها داریم که برای عضوی از آرایه این دو معادلند که باز اونم صحیح نبود.

در چه حالتی این دو تا معادلند؟

شبیه سازی فراخوانی با ارجاع توسط بقیه تکنیک ها - samanium - 20 دى ۱۳۸۹ ۱۱:۵۰ ق.ظ

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

شبیه سازی فراخوانی با ارجاع توسط بقیه تکنیک ها - sepid - 20 دى ۱۳۸۹ ۰۲:۲۵ ب.ظ

منظورتون از بدون وقفه رو متوجه نمیشم.
ممکنه واضحتر بگید.

شبیه سازی فراخوانی با ارجاع توسط بقیه تکنیک ها - samanium - 20 دى ۱۳۸۹ ۰۲:۵۲ ب.ظ

یعنی هر دو مرحله بلا فاصله اتفاق بیفته
مثلا چند خط اول کد تابع متغییر مورد نظرمون (مجازی داخل تابع که قراره مقدارش اخر سر کپی بشه توی متغییر اصلی)
یه مقداری میگیره بعد کنترل از تابع خارج میشه بایه شرط if مثلا اونوقت دیگه فرصت نشده که مقدار متغییر مجازی کپی بشه توی متغییر اصلیمون!
پس نتیجه میگیریم که این دو روش دقیقا یکی نیستن
چون توی روش فراخوانی با ارجاع ما با آدرس متغییر توی هر زمان از اجرا کار میکنیکم و تغییرات بلافاصله اعمال میشه !