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

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


ตัวดำเนินการ Unary คือตัวดำเนินการที่ดำเนินการกับตัวถูกดำเนินการตัวเดียวเพื่อสร้างค่าใหม่ ตัวดำเนินการเอกพจน์มีดังนี้ -

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

โอเปอเรเตอร์เหล่านี้มีความเชื่อมโยงจากขวาไปซ้าย โดยทั่วไป นิพจน์เอกนารีเกี่ยวข้องกับไวยากรณ์ที่นำหน้า 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