অপারেটর প্রেসিডেন্স (Operator precedence) একটি এক্সপ্রেশনে টার্মের গ্রুপিং নির্ধারণ করে এবং এক্সপ্রেশনটি কীভাবে ইভ্যালুয়েট হবে তা ডিসাইড করে। কিছু অপারেটর অন্যদের চেয়ে হায়ার প্রেসিডেন্স রাখে; উদাহরণস্বরূপ, মাল্টিপ্লিকেশন অপারেটর (+) এর চেয়ে হায়ার প্রেসিডেন্স রাখে।
উদাহরণস্বরূপ, x = 7 + 3 * 2; এখানে, x-এ ১৩ অ্যাসাইন হবে, ২০ না, কারণ * অপারেটরের প্রেসিডেন্স +-র চেয়ে বেশি, তাই এটি প্রথম 3*2 গুন করবে এবং তারপর ৭-এ যোগ করবে।
এখানে, হায়েস্ট প্রেসিডেন্স והח রাজা অপারেটরগুলো টেবিলের শীর্ষে থাকে, লোয়েস্ট প্রেসিডেন্স والے নিচে। একটি এক্সপ্রেশনে, হায়ার প্রেসিডেন্সের অপারেটরগুলো প্রথম ইভ্যালুয়েট হবে।
| বিভাগ (Category) | অপারেটর (Operator) | অ্যাসোসিয়েটিভিটি (Associativity) |
|---|---|---|
| পোস্টফিক্স (Postfix) | () [] -> . ++ - - | বাম থেকে ডান (Left to right) |
| ইউনারি (Unary) | + - ! ~ ++ - - (type)* & sizeof | ডান থেকে বাম (Right to left) |
| মাল্টিপ্লিকেটিভ (Multiplicative) | * / % | বাম থেকে ডান (Left to right) |
| অ্যাডিটিভ (Additive) | + - | বাম থেকে ডান (Left to right) |
| শিফট (Shift) | << >> | বাম থেকে ডান (Left to right) |
| রিলেশনাল (Relational) | < <= > >= | বাম থেকে ডান (Left to right) |
| ইকুয়ালিটি (Equality) | == != | বাম থেকে ডান (Left to right) |
| বিটওয়াইজ AND (Bitwise AND) | & | বাম থেকে ডান (Left to right) |
| বিটওয়াইজ XOR (Bitwise XOR) | ^ | বাম থেকে ডান (Left to right) |
| বিটওয়াইজ OR (Bitwise OR) | | | বাম থেকে ডান (Left to right) |
| লজিক্যাল AND (Logical AND) | && | বাম থেকে ডান (Left to right) |
| লজিক্যাল OR (Logical OR) | || | বাম থেকে ডান (Left to right) |
| কন্ডিশনাল (Conditional) | ?: | ডান থেকে বাম (Right to left) |
| অ্যাসাইনমেন্ট (Assignment) | = += -= *= /= %=>>= <<= &= ^= |= | ডান থেকে বাম (Right to left) |
| কমা (Comma) | , | বাম থেকে ডান (Left to right) |
উদাহরণ কোড
#include <stdio.h> 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; }
আউটপুট
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