Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Ý nghĩa của biểu thức c = a+++b trong C/C++

Xét câu lệnh trong C/C++:

c = a+++b;

Ý nghĩa của dòng này là gì?

Giả sử a=2, b=5. Biểu thức có thể hiểu 2 cách:

  • c = (a++) + b
  • c = a + (++b)

Có toán tử hậu tố tăng và tiền tố tăng. Phụ thuộc vào cách dùng.

Hai khái niệm: độ ưu tiên (precedence) và tính kết hợp (associativity). Duyệt trái sang phải:

  • c = (a++) + b → 2 + 5 = 7
  • c = a + (++b) → 2 + 6 = 8

Kiểm tra trình biên dịch chọn cách nào:

Ví dụ

#include <iostream>
using namespace std;

int main() {
    int a = 2, b = 5, c;
    c = a+++b;
    cout << "C is : " << c;
    return 0;
}

Kết quả

C is : 7

Trình biên dịch chọn tùy chọn đầu tiên: c = (a++) + b (theo quy tắc maximal munch - ăn càng nhiều ký tự càng tốt).