اولویت عملگرها

آشنایی با اولویت عملگرها در C++ و نحوه ارزیابی عبارات

اولویت عملگرها

اولویت عملگرها (Operator Precedence) تعیین می‌کند که کدام عملگر اول ارزیابی شود.

جدول اولویت عملگرها

از بالا به پایین (بالاترین اولویت در بالا)

اولویتعملگرتوضیح
1() [] -> . ++ --پرانتز، آرایه، عضو، افزایش/کاهش
2! ~ ++ -- + - * & sizeofیگانی (Unary)
3* / %ضرب، تقسیم، باقیمانده
4+ -جمع، تفریق
5<< >>شیفت
6< <= > >=مقایسه
7== !=برابری
8&AND بیتی
9^XOR بیتی
10|OR بیتی
11&&AND منطقی
12||OR منطقی
13?:شرطی
14= += -= *= /= %=انتساب
15,کاما

مثال‌های اولویت

مثال 1

int result = 5 + 3 * 2;
// اول ضرب: 3 * 2 = 6
// بعد جمع: 5 + 6 = 11
// result = 11

مثال 2

int result = (5 + 3) * 2;
// اول پرانتز: 5 + 3 = 8
// بعد ضرب: 8 * 2 = 16
// result = 16

مثال 3

bool result = 5 > 3 && 2 < 4;
// اول مقایسه‌ها: 5 > 3 = true, 2 < 4 = true
// بعد AND: true && true = true
// result = true

استفاده از پرانتز

همیشه از پرانتز برای وضوح استفاده کنید، حتی اگر لازم نباشد.

// بدون پرانتز (سخت خواندن)
int x = a + b * c - d / e;

// با پرانتز (آسان خواندن)
int x = a + (b * c) - (d / e);

ارتباط‌پذیری (Associativity)

وقتی عملگرها اولویت یکسان دارند، ارتباط‌پذیری تعیین می‌کند کدام اول ارزیابی شود.

ارتباط‌پذیری چپ به راست

int x = 10 - 5 - 2;
// (10 - 5) - 2 = 3

ارتباط‌پذیری راست به چپ

int x = 5;
int y = x *= 2 += 3;
// y = (x *= (2 += 3))

بهترین شیوه‌ها

نکات مهم

این مبحث بخشی از دوره آموزش کامل C++ است.

ابزارهای مرتبط