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