Toán tử phẩy (,) trong C/C++ có hai ngữ cảnh:
- 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