تور لحظه آخری
امروز : پنجشنبه ، 12 مهر 1403    احادیث و روایات:  امام علی (ع):با اخلاق نيكو، گفتار نرم مى‏شود.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1820126300




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

احضار به وسیله مقدار -


واضح آرشیو وب فارسی:سایت ریسک: احضار به وسیله مقدار mfahiminia 19 دي 1389, 11:02سلام دوباره خدمن دوستان عزیز در مبحث توابع وقتی می خواهیم از call by value یا احضار به وسیله مقدار استفاده کنیم باید تابع را به طور معمول بنویسیم که خودش از این روش استفاده کند یا باید چند cout دیگر برای متغیرمان بنویسیم؟ باتشکر:-? saalek110 19 دي 1389, 13:50تاپیک مربوط: نحوه ارسال مقادير به تابع در سي ++ - انواع صدا زدن تابع the_king 19 دي 1389, 17:20سلام دوباره خدمن دوستان عزیز در مبحث توابع وقتی می خواهیم از call by value یا احضار به وسیله مقدار استفاده کنیم باید تابع را به طور معمول بنویسیم که خودش از این روش استفاده کند یا باید چند cout دیگر برای متغیرمان بنویسیم؟ باتشکر:-? cout کمکی به احضار یک مقدار نمی کند، برای ارسال یک مقدار به خروجی استاندارد برنامه بکار می رود که در اغلب موارد همان صفحه نمایشگر است، یعنی به بیان ساده صرفا یک مقدار را در صفحه نمایشگر نشان می دهد. برای مشخص کردن نوع فراخوانی (با مقدار یا ارجاع) یک پارامتر (اعم از ورودی یا خروجی) می بایستی نوع داده صحیحی را برای آن انتخاب کنید. اینکه داده از نوع اشاره گر تعریف بشود و یا نشود. فراخوانی با مقدار Call by Value پارامتر هایی که می بایستی توسط مقدار فراخوانی شوند اشاره گر نیستند، مثلا در کد زیر نوع داده تعریف شده برای پارامتر i از نوع int است که یک نوع داده معمولی است و اشاره گر نمی باشد : void test(int i) { } از آنجایی که فراخوانی i با مقدار انجام می شود هر تغییری که در داخل تابع در مقدار i داده شود در مقدار خارج از تابع تاثیری ندارد، مثلا نگاهی به کد زیر بیاندازید : void test(int i) { i = 7; } int main() { int i = 2; test(i); cout << i; در کد بالا با وجود آنکه مقدار i در داخل تابع 7 شده، هیچ تاثیری روی i ای که در main نمایش داده می شود نخواهد داشت و مقدار 2 نمایش می یابد، i صرفا در درون تابع test برابر 7 می شود. فراخوانی مقدار با ارجاع Call by Reference زمانی که یک متغیر می بایستی با فراخوانی از طریق ارجاع مقدار دهی شود، مقدار ارسالی یک اشاره گر خواهد بود. برای مشخص کردن چنین وضعیتی دو شیوه را می توانید بکار ببرید، یا از & پیش از نام متغیر استفاده کنید و یا با * صریحا اشاره گر بودن متغیر را مشخص کنید. شیوه اول از برخی لحاظ ساده تر است. در مثال زیر متغیر i توسط ارجاع مقدار دهی می شود، به کاراکتر & قبل از نام i توجه کنید : void test(int &i) { i = 7; } int main() { int i = 2; test(i); cout << i; آنچه که در کد بالا به عنوان مقدار i در main نمایش می یابد مقدار 7 است، چون هر تغییری که در داخل تابع test روی مقدار i داده شود، مقدار اصلی فراخوانی کننده اش در main را تغییر می دهد. به کد داخل تابع test توجه کنید، به سادگی و بدون هیچ کاراکتر اضافه ای مانند * مقدار i به 7 تغییر داده شده. می توانید همان مثال بالا را با کاراکتر * و صریحا بصورت اشاره گر بنویسید، اما دقت کنید که موقع مقدار دهی i اشتباها بجای مقدار درون i خود اشاره گر i را تغییر ندهید، یعنی * را قبل از مقدار دهی ها فراموش نکنید. مثلا بجای i = 7* اشتباها i = 7 را ننویسید که در آنصورت اشاره گر i را جابجا کرده اید، نه مقداری که به آن اشاره می کند. در مثال زیر پارامتر i در تابع test صریحا یک اشاره گر تعریف شده که موقع دریافت پارامتر در main نیز می بایستی یک اشاره گر به آن ارسال شود. دقت کنید که هم در test از کاراکتر * برای مقدار دهی i استفاده شده و هم در main موقع ارسال پارامتر i کاراکتر & بکار رفته تا آدرس i به test ارسال شود، نه خود مقدار i void test(int *i) { *i = 7; } int main() { int i = 2; test(&i); cout << i; سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 338]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن