C++ cung cấp hai toán tử con trỏ: Toán tử lấy địa chỉ (&) và Toán tử gián tiếp (*). Con trỏ là biến chứa địa chỉ của biến khác, hoặc nói cách khác, biến chứa địa chỉ biến khác được nói là "trỏ đến" biến kia. Biến có thể là bất kỳ kiểu dữ liệu nào bao gồm đối tượng, cấu trúc, hoặc lại là con trỏ.
Toán tử lấy địa chỉ (&) là bổ sung của *. Là toán tử đơn ngôi trả về địa chỉ của biến (r-value) được chỉ định bởi toán hạng. Ví dụ:
Ví dụ
#include <iostream>
using namespace std;
int main() {
int var;
int *ptr;
int val;
var = 3000;
ptr = &var; // lấy địa chỉ var
val = *ptr; // lấy giá trị tại ptr
cout << "Value of var: " << var << endl;
cout << "Value of ptr: " << ptr << endl;
cout << "Value of val: " << val << endl;
return 0;
}
Kết quả
Value of var: 3000 Value of ptr: 0xbff64494 Value of val: 3000