Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

คำถามตัวดำเนินการจุลภาคใน C/C++ ?


ตัวดำเนินการจุลภาคในภาษาการเขียนโปรแกรม C/C++ มีสองบริบท -

  • เป็นตัวคั่น -

  • ในฐานะที่เป็นตัวดำเนินการ − ตัวดำเนินการเครื่องหมายจุลภาค { , } คือตัวดำเนินการไบนารีที่ละทิ้งนิพจน์แรก (หลังการประเมิน) แล้วใช้ค่าของนิพจน์ที่สอง โอเปอเรเตอร์นี้มีความสำคัญน้อยที่สุด

พิจารณารหัสต่อไปนี้และเดาผลลัพธ์ -

ตัวอย่าง

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

ผลลัพธ์

มันทำให้เกิดข้อผิดพลาดเพราะทำงานเป็นตัวคั่น

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

ตัวอย่าง

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

ผลลัพธ์

มันให้ a เป็นเอาต์พุตตามที่ใช้งานได้เพราะ ',' ทำงานเป็นโอเปอเรเตอร์ แต่ลำดับความสำคัญต่ำกว่าโอเปอเรเตอร์ที่ได้รับมอบหมายดังนั้นเอาต์พุตจึงเป็น a.

a

ตัวอย่าง

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

ผลลัพธ์

ให้ 123 เนื่องจากเอาต์พุตเป็น ', ' ทำงานเป็นตัวดำเนินการและอยู่ในวงเล็บปีกกาจะทำงานและประเมินนิพจน์ที่สองและให้เอาต์พุต

123