ตัวดำเนินการ ซึ่งต้องใช้ตัวถูกดำเนินการสามตัวในการดำเนินการ เรียกว่าตัวดำเนินการแบบไตรภาค สามารถแสดงด้วย “ ? :”. เรียกอีกอย่างว่าตัวดำเนินการตามเงื่อนไข ตัวดำเนินการปรับปรุงประสิทธิภาพและลดบรรทัดของโค้ด
นี่คือไวยากรณ์ของตัวดำเนินการ ternary ในภาษา C
Expression1 ? Expression2 : Expression3
นี่คือตัวอย่าง Ternary Operators ในภาษา C
ตัวอย่าง
#include <stdio.h>
int main() {
int a = -1;
double b = 26.4231;
int c = a? printf("True value : %lf",b):printf("False value : 0");
return 0;
} ผลลัพธ์
True value : 26.423100
Expression1 จะประเมินเสมอในขณะที่ expression2 &expression3 ขึ้นอยู่กับผลลัพธ์ของ expression1 ถ้าผลลัพธ์ของ expression1 ไม่ใช่ศูนย์หรือค่าลบ expression2 จะแสดง มิฉะนั้น expression3 จะแสดง
ตัวดำเนินการ ternary มีประเภทการส่งคืน ประเภทการส่งคืนขึ้นอยู่กับ expression2 และความสามารถในการแปลงของ expression3 เป็น expression2 หากไม่สามารถแปลงได้ คอมไพเลอร์จะส่งข้อผิดพลาด
นี่เป็นอีกตัวอย่างหนึ่งของตัวดำเนินการ ternary ในภาษา C
ตัวอย่าง
#include <stdio.h>
int main() {
int x = -1, y = 3;
double b = x+y+0.5;
int c = x<y? printf("True value : %lf",b):printf("False value : 0");
return 0;
} ผลลัพธ์
True value : 2.500000