البرمجة بلغة السى – 7 - اسبقية (أولوية) وارتباط العوامل

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

البرمجة بلغة السى – 7 - اسبقية (أولوية) وارتباط العوامل

مُساهمة من طرف Admin في الأربعاء يناير 29, 2014 7:34 pm

البرمجة بلغة السى – 7 -  اسبقية (أولوية) وارتباط العوامل :

أسبقية (أولوية) العوامل :

إذا تم إشراك أكثر من عامل فى تعبير عندئذ فإن لغة السى لها قاعدة محددة مسبقا فى أولوية العوامل . قاعدة أولوية العوامل هذه تسمى "أسبقية العامل" .
 
فى لغة السى تكون أسبقية العوامل الحسابية ( * , % , ? , + , - ) أعلى من عوامل المقارنة
( == , != , > , < , >= , <= )    وأسبقية عوامل المقارنة أعلى من العوامل المنطقية ( && , || , ! ) . على سبيل المثال التعبيرات التالية :


الكود:


(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



Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى