Lvalue Vs Rvalue کمی نوشته درباره

Lvalue Vs Rvalue کمی نوشته درباره

اول از تعریف شروع کنیم. خیلی پیچیده نمیکنم و تلاش میکنم مفهوم درک کنید.یک lvalue یه چیزی رو نشون میده که توی مموری فضای مشخصی رو میگیره.در مقابل rvalue جایی در مموری نمیگیره!میتونیم حتی اینطوری تصور کنیم که lvalue ها ظرف هستن و rvalue ها محتویات ظرف!int x = 77;برای مثال در کد بالا، عدد 77 یک rvalue هست و x یک lvalue.خب حالا اگر اینجور کاری کنیم چی میشه؟int y;
66 = y;اگر اینو اجرا کنیم gcc احتمالا اینجور اروری میدهerror: lvalue required as left operand of assignmentداره بهمون میگه که سمت چپ باید یه lvalue بزاری! نمیشه که آخه توی عدد 66 که یه rvalue هست یچیزی بریزم! بنده خدا rvalueاصلا آدرس مموری نداره که بشه توش چیزی ریخت! کد زیر نگاه کنیدint x = 1;
int y = 3;
int z = x + y; // okدوتا lvalue با هم جمع شدن! اتفاقی که داره میفته اینه که اول lvalue ها به rvalue تبدیل میشن، و بعد با هم جمع میشن. و در متغیر z که lvalue هست ذخیره میشن.

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *