ตัวดำเนินการ ซึ่งต้องใช้ตัวถูกดำเนินการสามตัวในการดำเนินการ เรียกว่าตัวดำเนินการแบบไตรภาค สามารถแสดงด้วย “ ? :”. เรียกอีกอย่างว่าตัวดำเนินการตามเงื่อนไข ตัวดำเนินการปรับปรุงประสิทธิภาพและลดบรรทัดของโค้ด
นี่คือไวยากรณ์ของตัวดำเนินการ 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