C++ มีตัวดำเนินการพอยน์เตอร์สองตัว ได้แก่ Address of Operator (&) และ Indirection Operator (*) ตัวชี้เป็นตัวแปรที่มีที่อยู่ของตัวแปรอื่นหรือคุณสามารถพูดได้ว่าตัวแปรที่มีที่อยู่ของตัวแปรอื่นนั้นเรียกว่า "ชี้ไปที่" ตัวแปรอื่น ตัวแปรอาจเป็นข้อมูลประเภทใดก็ได้ รวมถึงวัตถุ โครงสร้าง หรือตัวชี้อีกครั้ง
ตัวดำเนินการทางอ้อม (*) และเป็นส่วนเสริมของ &เป็นโอเปอเรเตอร์ unary ที่คืนค่าของตัวแปรที่อยู่ตามแอดเดรสที่ระบุโดยตัวถูกดำเนินการ ตัวอย่างเช่น
ตัวอย่าง
#include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // take the address of var ptr = &var; // take the value available at ptr val = *ptr; cout << "Value of var :" << var << endl; cout << "Value of ptr :" << ptr << endl; cout << "Value of val :" << val << endl; return 0; }
ผลลัพธ์
เมื่อคอมไพล์และรันโค้ดด้านบนแล้ว จะได้ผลลัพธ์ดังนี้ -
Value of var : 3000 Value of ptr : 0xbff64494 Value of val : 3000