الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

L-VALUE و R-VALUE

بدأه hasan abdel-latif في 17 أغسطس 2011 · 2 رد · 723 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إخوتي الكرام كل واحد مننا يممتلك معلومه مش عنده غيره فأنا بقترح إن المعلومه المهمه إللي إنت عارفها تقولها ونستفيد ونتناقش فيها وناخد موضوع محدد نتكلم في وبعد كده نتكلم في موضوع تاني ممكن أي حد يختاره.

......مع حبي الشديد لهذا المنتدي نبدأ ..بسم الله الرحمن الرحيم

إخوتي الموضوع اليوم عن L-VALUE AND R-VALUE

نري كثيرا هذه الكلمات ولا نعرف معناها ولكن مع الصبر + المحاوله للمعرفه + البحث الكثير لابد أن تصل إي ما تريد ما عالينا ..

أولا L-VALUE :

l-value هي أي شئ محدد يمتلك مكان في الذاكره( يعني بتحجز مكان في الذاكره) زي المتغيرات variables إزاي ناخد مثال :

int var;

هنا المتغير var له مكان أو مساحه في الذاكره إذا المتغير var هو l-value.

طيب دلوفتي في ناس تقولك l-value يعني ... left value القيمه اليسار علي علامة المساواه ودا طبعا كلام فارغ ليه أقولك بأه ليه...؟

عشان الثوابت هي l-value (عشان بتحجز مكان في الذاكره زي المتغير)و لا يمكنها أن تكون في الجهه اليسار علي علامه المساواه .

const int x =20;
x=2; // illegal

وده كان تعريف قديم بس إتلغه دلوقتي ... طيب خلاص

دلوقتي عرفنا أي حاجه بتمتلك مساحه في الذاكره تبأه l-value.

طيب إنت أعد تكلملنا وخلاص إيه هيه فائدتها

فيدتها يا سيدي إن إلطرف الأيسر لأي علامة مساواه لابد ان يكون l-value.

int x; // x is l-value 
x=11;//legal 
// عشان x هي l-value

هنا الطرف الأيسر لعلامة المساواه x

يعني l-value الكود صحيح

أما إذا قمت بعكسه

11=x; // illegal

فسيحدث خطأ للمترجم ... ليه؟

عشان 11 ليست l-value عشان دي قيمه لا تحجز مكان في الذاكره .

الخلاصه :

1. l-value معرف يحتوي علي مكان في الذاكره.

2.الجهه اليسار علي أداه المساوه لابد أن تكون l-value.

طيب أمال 11 دي ....

^

^

^

ثانيا R-VALUE:

r-value : اي تعبير يمكن أن يساويَ به أي l-value زي (11 أو 'y' ) وفي نفس الوقت لا تظهر إلا في الجهه اليمني لعلامة المساواة.

نعطي مثال ؟ أوك نعطي مثال :

int count =0; // count is l-value and 0 is r-va;ue
char answer = 'n';// answer is l-value and 'n' is r-value

طيب هو ينفع نساوي l-value ب l-value

نعم تستطيع

int x =100;
int y;
y=x;// y is l-value and x is l-value too

خلاصة الموضوع:

1. يعني r-value

هيه أي قيمه ممكن تساوي بيها l-value (متغير مثلا) بس علي شرط متظهرش إلا في الجهه اليمني أو بمعني أصح متحجزش أي مكان في الذاكره.

زي 1.1 'c'

2.l-value تعني

محدد أو معرف يحجز قيمه في الذاكره .

3.الجهه اليسري لعلامة المساواه لابد أن تكون l-value.

4.الجهه اليمني لعلامة المساواه ممكن تكون r-value او l-value.

انا مستني رددكم وتعليقاتكم الموضوع ده لسه مفتوح أي حد يكتب معلومات جديده فيه أو أي سؤال في الموضوع ونقاشها أوك

السلام عليكم .

1

.............. بسم الله الرحمن الرحيم ...............ز

"فمن إتبع هداي فلا يضل ولا يشقي " صدق الله العظيم

ماض في الطريق إلي .... C++

#2

لمحة مفيدة عن الفروق ، و خلاصة المقال تلخص الفرق .

لكن الملاحظات هي بلغة المقالة ، مكتوبة بلهجة محلية ، وهذا قد يمنع الاستفادة منها ، لذلك يجب عدم استخدام اللهجة المحلية بكثرة في كتابة المشاركات، طبقاً لقوانين المنتدى ، أيضاً ينبغي اختيار عناوين مناسبة لمحتوى المقالة ،

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

شكرا لك أخي الكريم إن شاء الله أحاول أن أستخدم اللغة العربيه الفصيحه أكرر شكري لك.

.............. بسم الله الرحمن الرحيم ...............ز

"فمن إتبع هداي فلا يضل ولا يشقي " صدق الله العظيم

ماض في الطريق إلي .... C++

مواضيع مشابهة