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

Câu hỏi về toán tử phẩy trong C/C++

Toán tử phẩy (,) trong C/C++ có hai ngữ cảnh:

    Là bộ tách (Separator)
  • Là toán tử (Operator): toán tử nhị phân đánh giá biểu thức đầu, bỏ qua giá trị, trả về giá trị biểu thức thứ hai. Độ ưu tiên thấp nhất.

Ví dụ 1: Làm bộ tách

#include <stdio.h>
int main(void) {
    char ch = 'a', 'b', 'c'; // Lỗi: phẩy làm bộ tách khai báo
    printf("%c", ch);
    return 0;
}

Lỗi biên dịch: expected identifier or '(' before 'b'

Ví dụ 2: Làm toán tử

#include <stdio.h>
int main(void) {
    char ch;
    ch = 'a','b','c'; // Phẩy làm toán tử, ưu tiên thấp hơn gán
    printf("%c", ch);
    return 0;
}

Kết quả: a (giá trị của biểu thức gán là 'a')

Ví dụ 3: Trong ngoặc

#include <stdio.h>
int f1() { return 43; }
int f2() { return 123; }
int main(void) {
    int a;
    a = (f1(), f2()); // Phẩy trong ngoặc: chạy f1(), trả về f2()
    printf("%d", a);
    return 0;
}

Kết quả: 123