سلام
یه نکته :
اینکه با تغییر مقدار یک متغییر (منظور از مقدار متغییر ، مقدار شی اون متغییر نیست . بلکه اگه نوع متغییرمون ، از نوعِ استراکچر باشه ، در این صورت ، منظور ، همون مقدار متغییر هست و اگه نوعش کلاس باشه ، در این صورت ، منظور ، مقدارِ اشاره گری هست (که این اشاره گر میتونه بسته به سیستم عامل ، 32 یا 64 بیت باشه) که به شیِ داده شده ، اشاره میکنه) ، همون متغییر ، ویرایش میشه و حافظه ی جدیدی براش در نظر گرفته نمیشه .
مثلا اگر مقدار :
باشه ، و بعد مقدار متغییر a را تغییر بدیم :کد:int a = 3;
(در اینجا چون a از نوع استراکچر هست) ، در همون آدرسی از حافظه که متغیر یا مقدار 3 قرار داشت ، در همون آدرس ، مقدار 3 ویرایش و مقدار 10 جایگزین اش میشه (یعنی حافظه ی جدید برای متغییر a در نظر گرفته نمیشه) .کد:a = 10;
یا مثلا اگه متغییری از نوع کلاس باشه :
و بعد ، مقدار متغییر str را تغییر بدیم :کد:string str = "text";
در اینجا ، هر چند شی جدیدی برای "salam" در نظر گرفته میشه اما مقدار متغییر ، که بسته به نوعِ سیستم عامل ، میتونه اشاره گرِ 32 یا 64 بیت بوده باشه ، این اشاره گر ، در هر آدرسی از حافظه که قرار داشت ، همچنان قرار داره و فقط آدرسِ این اشاره گر ، به آدرس شی جدید (یعنی آدرس شی "salam") ، تغییر خواهد کرد .کد:str = "salam";






پاسخ با نقل قول
Bookmarks