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

مشكلة أولويات العمليات الحسابية

بدأه gameel gamal mohammed في 3 فبراير 2011 · 2 رد · 1,949 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ممكن لو تكرمتم تدلونا على أولوية العمليات الحسابية في لغة سي صراحة تجعل الحليم حيران

أكتب هذه المعالة بشرط أن التعريف يكون في سطر مختلف

int x

x=a++ +(a+b)+ ++b

هل الأولوية للأقواس أم ++ وقد قرأت في أكثر من كتاب عربي وإنجليزي أن اولوية ل ++ القبلية والتنفيذ من اليمين إلى اليسار وكذلك بانسبة بالنسبة a++ عندم تأتي بعد أنا أعرف أنها تأتي أخر عملية لكن قرأت أنها تأتي في البداية والزيادة تكون في النهاية

لكن إذا كتبت تعريف امتغير في نفس السطر النتيجة تكون مختلفة تماماً

int x=a++ +(a+b)+ ++b

يشكل عام أريد ماهي أولويات العمليات الحسابية مع توضيح بمثال لكل الحالات إذا كان التعريف في نفس السطر أو في سطر مختلف وخاصة الزيادة القبلية والبعدية

تحياتي وإحترامي

#2

ياجمعة وين الرد ويش السؤال صعب جدااااااااااا

#3
اقتباس
السلام عليكم

و علیکم السلام و رحمة الله و برکاته

بالنسبة لـ++ فی البدایة أم فی النهایة، إن کان فی البدایة فیزید علی قیمة a ثم یستخدمه و إن کان فی النهایة، یستخدم a و ثم یزید علی قیمته..

اقتباس
In the prefix form, the increment or decrement takes place before the value is used in expression evaluation, so the value of the expression is different from the value of the operand. In the postfix form, the increment or decrement takes place after the value is used in expression evaluation, so the value of the expression is the same as the value of the operand

MSDN Library: Prefix Increment and Decrement Operators

Postfix Increment and Decrement Operators

و أما بالنسبة لمثالک ، فهو undefined behaviour ( آسف لا أعلم ما هو معنیها بالعربیة، لأن لیست العربیة لغتی الأصلیة و لا الإنجلیزیة :P ) بسبب + و لا نعلم متی یزید علی قیمة a و b .

ألق نظرة علی هذا فی موقع Stackoverflow و ستجد کل ما ترید هناک...

Undefined Behaviour and sequence Point

و هذه هی أولویات العملیات : ( أیضا فی MSDN Library ) :

post-232933-041317400 1296977566_thumb.p

المرفقات
OperatorPrecedence.png

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