Trong lập trình, có quy tắc xác định thứ tự đánh giá toán hạng và tính kết hợp (associativity).
Chương trình minh họa thứ tự đánh giá:
Ví dụ
#include <iostream>
using namespace std;
int x = 2;
int changeVal() {
x *= x;
return x;
}
int main() {
int p = changeVal() + changeVal();
cout << "Value: " << x << endl;
cout << "Operation result: " << p << endl;
return 0;
}
Kết quả
Value: 16 Operation result: 20
Giải thích: Thứ tự đánh giá toán hạng của toán tử + không được quy định (unspecified). changeVal() đầu tiên: x=2*2=4, trả về 4. changeVal() thứ hai: x=4*4=16, trả về 16. p = 4+16=20. x cuối cùng = 16.