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

โอเปอเรเตอร์ Unary ใน C/C++


ที่นี่เราจะดูว่าโอเปอเรเตอร์ unary ใน C / C++ คืออะไร ตัวดำเนินการ Unary คือตัวดำเนินการที่ดำเนินการกับตัวถูกดำเนินการตัวเดียวเพื่อสร้างค่าใหม่ โอเปอเรเตอร์ unary มีดังนี้

ตัวดำเนินการ คำอธิบาย
ตัวดำเนินการทางอ้อม (*)
มันทำงานบนตัวแปรพอยน์เตอร์ และส่งกลับค่า l ที่เทียบเท่ากับค่าที่อยู่ของตัวชี้ นี้เรียกว่า " dereference" ตัวชี้
ที่อยู่ของตัวดำเนินการ (&)
ตัวดำเนินการที่อยู่ unary-of (&) ใช้ที่อยู่ของตัวถูกดำเนินการ ตัวถูกดำเนินการของตัวดำเนินการที่อยู่ของตัวดำเนินการสามารถเป็นได้ทั้งตัวกำหนดฟังก์ชันหรือค่า l ที่กำหนดวัตถุที่ไม่ใช่ฟิลด์บิตและไม่ได้ประกาศด้วยตัวระบุคลาสหน่วยเก็บข้อมูลรีจิสเตอร์
ตัวดำเนินการบวกยูนารี (+)
ผลลัพธ์ของตัวดำเนินการบวก unary (+) คือค่าของตัวถูกดำเนินการ ตัวถูกดำเนินการของตัวดำเนินการ unary plus ต้องเป็นประเภทเลขคณิต
ตัวดำเนินการปฏิเสธเอกพจน์ (-)
ตัวดำเนินการ - (unary ลบ) จะลบล้างค่าของตัวถูกดำเนินการ ตัวถูกดำเนินการสามารถมีประเภทเลขคณิตใดก็ได้ ผลลัพธ์ไม่ใช่ค่า lvalue
ตัวดำเนินการปฏิเสธตรรกะ (!)
ตัวดำเนินการปฏิเสธเชิงตรรกะ (!) กลับความหมายของตัวถูกดำเนินการ ตัวถูกดำเนินการต้องเป็นเลขคณิตหรือประเภทตัวชี้ (หรือนิพจน์ที่ประเมินเป็นเลขคณิตหรือประเภทตัวชี้) ตัวถูกดำเนินการถูกแปลงโดยปริยายเป็นประเภทบูล
ตัวดำเนินการเสริม (~)
ตัวดำเนินการเสริมที่บางครั้งเรียกว่าตัวดำเนินการ "ส่วนเติมเต็มระดับบิต" หรือ "ระดับบิตไม่" จะสร้างส่วนเสริมของตัวถูกดำเนินการในระดับบิต ตัวถูกดำเนินการต้องเป็นประเภทอินทิกรัล
ตัวดำเนินการเพิ่มคำนำหน้า (++)
ตัวดำเนินการเพิ่มคำนำหน้า ( ++ ) เพิ่มตัวดำเนินการตัวถูกดำเนินการ ค่าที่เพิ่มขึ้นนี้เป็นผลมาจากนิพจน์ ตัวถูกดำเนินการต้องเป็นค่า l ไม่ใช่ประเภท const ผลลัพธ์คือค่า l ของประเภทเดียวกับตัวถูกดำเนินการ
ตัวดำเนินการลดคำนำหน้า (--)
ตัวดำเนินการลดคำนำหน้า ( -- ) ลบหนึ่งตัวออกจากตัวถูกดำเนินการ ค่าที่ลดลงนี้เป็นผลลัพธ์ของนิพจน์ ตัวถูกดำเนินการต้องเป็นค่า l ไม่ใช่ประเภท const ผลลัพธ์คือค่า l ของประเภทเดียวกับตัวถูกดำเนินการ
ตัวดำเนินการแคสต์ ()
การร่ายประเภทให้วิธีการสำหรับการแปลงประเภทของวัตถุในสถานการณ์เฉพาะอย่างชัดเจน คอมไพเลอร์ถือว่า cast-expression เป็น type-name หลังจากสร้าง typecast แล้ว
ขนาดของตัวดำเนินการ
มันเป็นตัวดำเนินการ unary เวลาคอมไพล์ ซึ่งสามารถใช้ในการคำนวณขนาดของตัวถูกดำเนินการ
ตัวดำเนินการใหม่
เป็นตัวดำเนินการการจัดสรรหน่วยความจำที่ใช้ในการจัดสรรหน่วยความจำแบบไดนามิก
ลบตัวดำเนินการ
เป็นตัวดำเนินการการจัดสรรหน่วยความจำที่ใช้ในการจัดสรรคืนหน่วยความจำที่ได้รับการจัดสรรแบบไดนามิก

ตัวดำเนินการเหล่านี้มีการเชื่อมโยงจากขวาไปซ้าย นิพจน์เอกนารีมักเกี่ยวข้องกับไวยากรณ์ที่นำหน้า postfix หรือนิพจน์หลัก

ลองดูตัวอย่างของตัวดำเนินการเอกพจน์ -(ลบ) และ cast()

ตัวอย่าง

#include<iostream>
using namespace std;
int main() {
   int x;
   float y = 1.23;
   x = (int) y;
   x = -x;
   cout << x;
   return 0;
}

ผลลัพธ์

-1