কম্পিউটার টিউটোরিয়াল

সি-এ অপারেটর প্রেসিডেন্স (Operator Precedence) এবং অ্যাসোসিয়েটিভিটি (Associativity)

অপারেটর প্রেসিডেন্স (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
  1. জাভাস্ক্রিপ্টে বিটওয়াইজ AND অপারেটর (&) কী?

  2. জাভাস্ক্রিপ্ট বিটওয়াইজ AND (&) অপারেটর কী?

  3. জাভাস্ক্রিপ্টে != এবং !== অপারেটরের পার্থক্য

  4. জাভাস্ক্রিপ্টে রেস্ট এবং স্প্রেড অপারেটর