ตัวดำเนินการ Unary คือตัวดำเนินการที่ดำเนินการกับตัวถูกดำเนินการตัวเดียวเพื่อสร้างค่าใหม่ ตัวดำเนินการเอกพจน์มีดังนี้:
ตัวดำเนินการ | คำอธิบาย |
---|---|
ตัวดำเนินการทางอ้อม (*) | มันทำงานบนตัวแปรพอยน์เตอร์ และส่งกลับค่า l ที่เทียบเท่ากับค่าที่อยู่ของตัวชี้ นี้เรียกว่า " dereference" ตัวชี้ |
ที่อยู่ของตัวดำเนินการ (&) | ตัวดำเนินการที่อยู่ unary-of (&) ใช้ที่อยู่ของตัวถูกดำเนินการ ตัวถูกดำเนินการของตัวดำเนินการที่อยู่ของตัวดำเนินการสามารถเป็นได้ทั้งตัวกำหนดฟังก์ชันหรือค่า l ที่กำหนดวัตถุที่ไม่ใช่ฟิลด์บิตและไม่ได้ประกาศด้วยตัวระบุคลาสหน่วยเก็บข้อมูลรีจิสเตอร์ |
ตัวดำเนินการบวก Unary (+) | ผลลัพธ์ของตัวดำเนินการบวก unary (+) คือค่าของตัวถูกดำเนินการ ตัวถูกดำเนินการของตัวดำเนินการ unary plus ต้องเป็นประเภทเลขคณิต |
ตัวดำเนินการลบล้าง Unary (-) | ตัวดำเนินการ - (unary ลบ) จะลบล้างค่าของตัวถูกดำเนินการ ตัวถูกดำเนินการสามารถมีประเภทเลขคณิตใดก็ได้ ผลลัพธ์ไม่ใช่ค่า lvalue |
ตัวดำเนินการปฏิเสธตรรกะ (!) | ตัวดำเนินการปฏิเสธเชิงตรรกะ (!) กลับความหมายของตัวถูกดำเนินการ ตัวถูกดำเนินการต้องเป็นเลขคณิตหรือประเภทตัวชี้ (หรือนิพจน์ที่ประเมินเป็นเลขคณิตหรือประเภทตัวชี้) ตัวถูกดำเนินการถูกแปลงโดยปริยายเป็นประเภทบูล |
ตัวดำเนินการเสริม (~) | ตัวดำเนินการเสริมของหนึ่งในบางครั้งเรียกว่าตัวดำเนินการ "ส่วนเติมเต็มระดับบิต" หรือ "ระดับบิตไม่" จะสร้างส่วนเสริมของตัวถูกดำเนินการในระดับบิต ตัวถูกดำเนินการต้องเป็นประเภทอินทิกรัล |
ตัวดำเนินการเพิ่มคำนำหน้า (++) | ตัวดำเนินการเพิ่มคำนำหน้า ( ++ ) เพิ่มตัวดำเนินการตัวถูกดำเนินการ ค่าที่เพิ่มขึ้นนี้เป็นผลมาจากนิพจน์ ตัวถูกดำเนินการต้องเป็นค่า l ไม่ใช่ประเภท const ผลลัพธ์คือค่า l ของประเภทเดียวกับตัวถูกดำเนินการ |
ตัวดำเนินการลดคำนำหน้า (--) | ตัวดำเนินการลดคำนำหน้า ( -- ) ลบหนึ่งตัวออกจากตัวถูกดำเนินการ ค่าที่ลดลงนี้เป็นผลลัพธ์ของนิพจน์ ตัวถูกดำเนินการต้องเป็นค่า l ไม่ใช่ประเภท const ผลลัพธ์คือค่า l ของประเภทเดียวกับตัวถูกดำเนินการ |
ตัวดำเนินการแคสต์ () | การแคสต์ประเภทจัดเตรียมวิธีการสำหรับการแปลงประเภทของอ็อบเจ็กต์ในสถานการณ์เฉพาะอย่างชัดเจน คอมไพเลอร์ถือว่า cast-expression เป็น type-name หลังจากสร้าง typecast แล้ว |
ตัวดำเนินการขนาด | มันเป็นตัวดำเนินการ unary เวลาคอมไพล์ ซึ่งสามารถใช้ในการคำนวณขนาดของตัวถูกดำเนินการ |
ตัวดำเนินการใหม่ | เป็นตัวดำเนินการการจัดสรรหน่วยความจำที่ใช้ในการจัดสรรหน่วยความจำแบบไดนามิก |
ลบตัวดำเนินการ | เป็นตัวดำเนินการการจัดสรรหน่วยความจำที่ใช้ในการจัดสรรคืนหน่วยความจำที่ได้รับการจัดสรรแบบไดนามิก |
โอเปอเรเตอร์เหล่านี้มีความเชื่อมโยงจากขวาไปซ้าย โดยทั่วไป นิพจน์เอกนารีเกี่ยวข้องกับไวยากรณ์ที่นำหน้า postfix หรือนิพจน์หลัก
ตัวอย่าง
มาดูตัวอย่างของตัวดำเนินการเอกพจน์ -(ลบ) และแคสต์()
#include<iostream> using namespace std; int main() { int x; float y = 1.23; x = (int) y; x = -x; cout << x; return 0; }
ผลลัพธ์
สิ่งนี้ให้ผลลัพธ์ -
-1