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