البرمجة بلغة السى – 7 - اسبقية (أولوية) وارتباط العوامل
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
البرمجة بلغة السى – 7 - اسبقية (أولوية) وارتباط العوامل
البرمجة بلغة السى – 7 - اسبقية (أولوية) وارتباط العوامل :
أسبقية (أولوية) العوامل :
إذا تم إشراك أكثر من عامل فى تعبير عندئذ فإن لغة السى لها قاعدة محددة مسبقا فى أولوية العوامل . قاعدة أولوية العوامل هذه تسمى "أسبقية العامل" .
فى لغة السى تكون أسبقية العوامل الحسابية ( * , % , ? , + , - ) أعلى من عوامل المقارنة
( == , != , > , < , >= , <= ) وأسبقية عوامل المقارنة أعلى من العوامل المنطقية ( && , || , ! ) . على سبيل المثال التعبيرات التالية :
إرتباط العوامل :
الارتباط يبين بأى ترتيب يتم تنفيذ عاملين لهما نفس الاسبقية . لنرى المثال التالى :
هنا ، العامل == والعامل != لهما نفس الاسبقية . ارتباط كل من == و != يكون من اليسار إلى اليمين ، بمعنى أنه يتم تنفيذ التعبير الموجود باليسار أولا ويسير التنفيذ جهة اليمين . لذلك فإن a==b!=c تعادل :
فيما يلى بيان بجميع العوامل فى لغة السى مع الأسبقية والارتباط :
أسبقية (أولوية) العوامل :
إذا تم إشراك أكثر من عامل فى تعبير عندئذ فإن لغة السى لها قاعدة محددة مسبقا فى أولوية العوامل . قاعدة أولوية العوامل هذه تسمى "أسبقية العامل" .
فى لغة السى تكون أسبقية العوامل الحسابية ( * , % , ? , + , - ) أعلى من عوامل المقارنة
( == , != , > , < , >= , <= ) وأسبقية عوامل المقارنة أعلى من العوامل المنطقية ( && , || , ! ) . على سبيل المثال التعبيرات التالية :
- الكود:
(a>b+c&&d)
This expression is equivalent to:
((a>(b+c))&&d)
i.e, (b+c) executes first
then, (a>(b+c)) executes
then, (a>(b+c))&&d) executes
إرتباط العوامل :
الارتباط يبين بأى ترتيب يتم تنفيذ عاملين لهما نفس الاسبقية . لنرى المثال التالى :
- الكود:
a==b!=c
هنا ، العامل == والعامل != لهما نفس الاسبقية . ارتباط كل من == و != يكون من اليسار إلى اليمين ، بمعنى أنه يتم تنفيذ التعبير الموجود باليسار أولا ويسير التنفيذ جهة اليمين . لذلك فإن a==b!=c تعادل :
- الكود:
(a==b)!=c
فيما يلى بيان بجميع العوامل فى لغة السى مع الأسبقية والارتباط :
- الكود:
Operator Meaning of operator Associativity
()
[]
->
. Functional call
Array element reference
Indirect member selection
Direct member selection Left to right
!
~
+
-
++
--
&
*
sizeof
(type) Logical negation
Bitwise(1 's) complement
Unary plus
Unary minus
Increment
Decrement
Dereference Operator(Address)
Pointer reference
Returns the size of an object
Type cast(conversion) Right to left
*
/
% Multiply
Divide
Remainder Left to right
+
- Binary plus(Addition)
Binary minus(subtraction) Left to right
<<
>> Left shift
Right shift Left to right
<
<=
>
>= Less than
Less than or equal
Greater than
Greater than or equal Left to right
==
!= Equal to
Not equal to Left to right
& Bitwise AND Left to right
^ Bitwise exclusive OR Left to right
| Bitwise OR Left to right
&& Logical AND Left to right
|| Logical OR Left to right
?: Conditional Operator Left to right
=
*=
/=
%=
-=
&=
^=
|=
<<=
>>= Simple assignment
Assign product
Assign quotient
Assign remainder
Assign sum
Assign difference
Assign bitwise AND
Assign bitwise XOR
Assign bitwise OR
Assign left shift
Assign right shift Right to left
, Separator of expressions Left to right
مواضيع مماثلة
» البرمجة بلغة السى – 6 - العوامل (المؤثرات) Operators
» دروس البرمجة بلغة السى - 1 - مقدمة C Programming
» البرمجة بلغة السى – الجزء الثانى -2- حلقة for
» البرمجة بلغة السى –4- أنواع البيانات
» البرمجة بلغة السى –3- المتغيرات والثوابت
» دروس البرمجة بلغة السى - 1 - مقدمة C Programming
» البرمجة بلغة السى – الجزء الثانى -2- حلقة for
» البرمجة بلغة السى –4- أنواع البيانات
» البرمجة بلغة السى –3- المتغيرات والثوابت
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى