অপারেটর অগ্রাধিকার একটি অভিব্যক্তিতে পদগুলির গ্রুপিং নির্ধারণ করে এবং কীভাবে একটি অভিব্যক্তিকে মূল্যায়ন করা হয় তা নির্ধারণ করে। কিছু অপারেটর অন্যদের তুলনায় উচ্চ অগ্রাধিকার আছে; উদাহরণস্বরূপ, যোগ অপারেটরের তুলনায় গুণ অপারেটরের অগ্রাধিকার বেশি।
উদাহরণস্বরূপ, x =7 + 3 * 2; এখানে, x 13 বরাদ্দ করা হয়েছে, 20 নয় কারণ + এর চেয়ে অপারেটর * এর অগ্রাধিকার বেশি, তাই এটি প্রথমে 3*2 দিয়ে গুণিত হয় এবং তারপর 7 যোগ করে।
এখানে, সর্বোচ্চ অগ্রাধিকার সহ অপারেটরগুলি টেবিলের শীর্ষে উপস্থিত হয়, যাদের সর্বনিম্ন থাকে তারা নীচে উপস্থিত হয়৷ একটি অভিব্যক্তির মধ্যে, উচ্চতর অগ্রাধিকার অপারেটরদের প্রথমে মূল্যায়ন করা হবে।
| বিভাগ | অপারেটর | সহযোগিতা |
|---|---|---|
| পোস্টফিক্স | () [] ->। ++ - - | বাম থেকে ডানে |
| Unary | + - ! ~ ++ - - (টাইপ)* &sizeof | ডান থেকে বাম |
| গুণক | * / % | বাম থেকে ডানে |
| অ্যাডিটিভ | + - | বাম থেকে ডানে |
| Shift | <<>> | বাম থেকে ডানে |
| সম্পর্কীয় | <<=>>= | বাম থেকে ডানে |
| সমতা | ==!= | বাম থেকে ডানে |
| বিটওয়াইজ এবং | & | বাম থেকে ডানে |
| বিটওয়াইজ XOR | ^ | বাম থেকে ডানে |
| বিটওয়াইজ বা | | | বাম থেকে ডানে |
| যৌক্তিক এবং | && | বাম থেকে ডানে |
| যৌক্তিক বা | || | বাম থেকে ডানে |
| শর্তসাপেক্ষ | ?: | ডান থেকে বাম |
| অ্যাসাইনমেন্ট | =+=-=*=/=%=>>=<<=&=^=|= | ডান থেকে বাম |
| কমা | , | বাম থেকে ডানে |
উদাহরণ কোড
#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