Pointer Operators ใน C++
C++ มี pointer operators 2 ตัว:
- Address-of Operator (&)
- Indirection Operator (*)
Pointer คือตัวแปรที่เก็บ address ของตัวแปรอีกตัว "point to" ตัวแปรนั้น ชนิดข้อมูลอะไรก็ได้ (object, struct, pointer อีกตัว)
Indirection Operator (*)
Complement ของ & เป็น unary operator คืนค่าของตัวแปรที่อยู่ที่ address ใน operand
ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
int var = 3000;
int *ptr;
int val;
ptr = &var; // address of var
val = *ptr; // value at ptr (dereference)
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: 0x7ffc... (address) Value of val: 3000