تقدم عملگرها در زبان C
در جدول زیر تقدم عملگرهای در زبان C که پشتیبانی می شود را مشاهده می کنید.
دسته بندی | عملگرها | ترتیب |
پسوندی | () [] -> . ++ – – | از چپ به راست |
یگانی | + – ! ~ ++ – – (type)* & sizeof | از راست به چپ |
ضربی | * / % | از چپ به راست |
افزودنی | + – | از چپ به راست |
شیفت | << >> | از چپ به راست |
رابطه ای | < <= > >= | از چپ به راست |
برابری | == != | از چپ به راست |
AND بیتی | & | از چپ به راست |
XOR بیتی | ^ | از چپ به راست |
OR بیتی | | | از چپ به راست |
AND منطقی | && | از چپ به راست |
OR منطقی | || | از چپ به راست |
شرطی | ?: | از راست به چپ |
انتسابی | = += -= *= /= %=>>= <<= &= ^= |= | از راست به چپ |
کاما | , | از چپ به راست |
مثال
برای درک بهتر اولویت عملگرها در زبان C، به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> int main() { int a = 20; int b = 10; int c = 15; int d = 5; int e; e = (a + b) * c / d; // ( 30 * 15 ) / 5 printf("Value of (a + b) * c / d is : %d\n", e ); e = ((a + b) * c) / d; // (30 * 15 ) / 5 printf("Value of ((a + b) * c) / d is : %d\n" , e ); e = (a + b) * (c / d); // (30) * (15/5) printf("Value of (a + b) * (c / d) is : %d\n", e ); e = a + (b * c) / d; // 20 + (150/5) printf("Value of a + (b * c) / d is : %d\n" , e ); return 0; } |
بعد از اجرای کد بالا توسط کامپایلر زبان C خروجی زیر را مشاهده خواهید کرد.
1 2 3 4 | Value of (a + b) * c / d is : 90 Value of ((a + b) * c) / d is : 90 Value of (a + b) * (c / d) is : 90 Value of a + (b * c) / d is : 50 |
سلام وقتتون بخیر! خواهشی که از شما دارم به این سوال من پاسخ بدین با تشکر! از میان عملگرهای زیر کدام عملگر بالاترین تقدم را دارد؟ الف- ! ب- + ج- && د- >
لطفا سوالتون رو در بخش انجمن سایت بپرسید