مقدار، ارجاع و حافظه
سلام بدون زبالهروب کار میکند؛ برای همین دانستن اینکه مقدارها کی کپی میشوند و حافظه کی آزاد میشود مهم است.
در این درس
مقدارها کپی میشوند
وقتی ساختاری را در متغیر دیگری میگذارید یا به روال میفرستید، یک کپی ساخته میشود و تغییر کپی روی اصل اثری ندارد. اگر روال باید اصل را تغییر دهد، ورودی را ارجاعی (&:) تعریف کنید.
ساختار حساب:
همگانی موجودی: صحیح = ۰
پایان
روال واریز(ح &: حساب، مبلغ: صحیح):
ح.موجودی += مبلغ
پایان
روال ریشه:
ناپایا الف := حساب { موجودی = ۱۰۰ }
ناپایا ب := الف
ب.موجودی = ۵۰۰
سرچاپ الف.موجودی، ب.موجودی
واریز(الف، ۲۵)
سرچاپ الف.موجودی
پایانخروجی100 500
125
آزادکردن حافظه
عددها، رشتهها و ساختارهای ساده خودشان مدیریت میشوند. وکتور و نگاشت اما حافظهای میگیرند که باید با آزادکن() پس داده شود. عادت خوب این است که بلافاصله پس از ساختن بنویسید دیرکن فهرست.آزادکن().
اشارهگر
برای کار با کتابخانههای C، سلام اشارهگر هم دارد: صحیح* اشارهگری به صحیح است، تهی* اشارهگر بیگونه و پوچ اشارهگر خالی است. در کد معمولی سلام به آنها نیازی ندارید.