Computer >> Máy Tính >  >> Lập trình >> lập trình C

Một câu hỏi về toán tử dấu phẩy trong C / C ++?

Toán tử dấu phẩy trong ngôn ngữ lập trình C / C ++ có hai ngữ cảnh -

  • Làm dấu phân tách -

  • Là một toán tử - Toán tử dấu phẩy {,} là một toán tử nhị phân loại bỏ biểu thức đầu tiên (sau khi đánh giá) và sau đó sử dụng giá trị của biểu thức thứ hai. Toán tử này được ưu tiên ít nhất.

Hãy xem xét các mã sau và đoán kết quả -

Ví dụ

#include <stdio.h>
int main(void) {
   char ch = 'a', 'b', 'c';
   printf("%c", ch);
   return 0;
}

Đầu ra

Nó xuất hiện một lỗi vì dấu hiệu hoạt động như một dấu phân cách.

prog.c: In function ‘main’:
prog.c:5:20: error: expected identifier or ‘(’ before 'b'
char ch = 'a', 'b', 'c';
^~~

Ví dụ

#include <stdio.h>
int main(void) {
   char ch;
   ch = 'a','b','c';
   printf("%c", ch);
   return 0;
}

Đầu ra

Nó cho a như đầu ra như nó hoạt động vì ‘,’ hoạt động như một toán tử nhưng mức độ ưu tiên của nó thấp hơn toán tử gán, do đó đầu ra là a.

a

Ví dụ

#include <stdio.h>
int f1() {
   return 43;
}
int f2() {
   return 123 ;
}
int main(void) {
   int a;
   a = (f1() , f2());
   printf("%d", a);
   return 0;
}

Đầu ra

Nó cho 123 khi đầu ra là toán tử ‘,’ hoạt động như một toán tử và ở trong dấu ngoặc nhọn, nó hoạt động và đánh giá biểu thức thứ hai và đưa ra đầu ra.

123