إخوتي الكرام كل واحد مننا يممتلك معلومه مش عنده غيره فأنا بقترح إن المعلومه المهمه إللي إنت عارفها تقولها ونستفيد ونتناقش فيها وناخد موضوع محدد نتكلم في وبعد كده نتكلم في موضوع تاني ممكن أي حد يختاره.
......مع حبي الشديد لهذا المنتدي نبدأ ..بسم الله الرحمن الرحيم
إخوتي الموضوع اليوم عن 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.
انا مستني رددكم وتعليقاتكم الموضوع ده لسه مفتوح أي حد يكتب معلومات جديده فيه أو أي سؤال في الموضوع ونقاشها أوك
السلام عليكم .
