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