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

rvalues, lvalues, xvalues, glvalues ​​และ prvalues ​​ใน C ++ คืออะไร


  • lvalue มีที่อยู่ที่โปรแกรมของคุณสามารถเข้าถึงได้ ตัวอย่างของนิพจน์ lvalue ได้แก่ ชื่อตัวแปร รวมถึงตัวแปร const องค์ประกอบอาร์เรย์ การเรียกใช้ฟังก์ชันที่ส่งคืนการอ้างอิง lvalue บิตฟิลด์ ยูเนียน และสมาชิกคลาส
  • นิพจน์ xvalue ไม่มีที่อยู่ แต่สามารถใช้เพื่อเริ่มต้นการอ้างอิง rvalue ซึ่งให้การเข้าถึงนิพจน์ ตัวอย่างรวมถึงการเรียกใช้ฟังก์ชันที่ส่งคืนการอ้างอิง rvalue ตัวห้อยอาร์เรย์ ฯลฯ
  • glvalue (“ค่าทั่วไป”) คือ lvalue หรือ xvalue
  • rvalue (ในอดีตเรียกว่า rvalue เนื่องจาก rvalues ​​อาจปรากฏที่ด้านขวามือของนิพจน์การกำหนด) คือ xvalue วัตถุชั่วคราวหรือวัตถุย่อยของสิ่งนั้น หรือค่าที่ไม่เกี่ยวข้องกับวัตถุ
  • นิพจน์ prvalue ไม่มีที่อยู่ที่เข้าถึงได้โดยโปรแกรมของคุณ ตัวอย่างของนิพจน์ prvalue ได้แก่ ตัวอักษร การเรียกใช้ฟังก์ชันที่ส่งคืนประเภทที่ไม่อ้างอิง