Toán tử con trỏ trong C++



C++ cung cấp hai toán tử con trỏ là: toán tử & (toán tử address of) và toán tử * (toán tử indirection).

Một con trỏ là một biến mà chứa địa chỉ của biến khác hoặc bạn có thể nói rằng một biến chứa địa chỉ của biến khác là được xem như là trỏ tới biến khác. Một biến có thể là bất kỳ kiểu dữ liệu nào, gồm đối tượng, cấu trúc, hoặc chính con trỏ.

Toán tử . (dot) và toán tử -> (arrow) được sử dụng để tham chiếu tới các thành viên riêng rẽ của lớp, cấu trúc, và union.

Toán tử & trong C++

Toán tử & là một toán tử một ngôi trong C++ mà trả về địa chỉ bộ nhớ của toán hạng của nó. Ví dụ, nếu var là một biến integer, thì &var là địa chỉ của nó. Toán tử này có cùng độ ưu tiên và thứ tự từ phải qua trái như các toán tử một ngôi khác trong C++.

Bạn nên đọc toán tử & là "address of", nghĩa là &var sẽ được đọc là "địa chỉ của var".

Toán tử * trong C++

Toán tử con trỏ thứ hai là toán tử * trong C++, và nó một sự bổ sung cho toán tử &. Đây là toán tử một ngôi mà trả về giá trị của biến được đặt tại địa chỉ đã được xác định bởi toán hạng của nó.

Sau đây là chương trình minh họa cho hai loại toán tử con trỏ trong C++:

#include <iostream>
 
using namespace std;
 
int main ()
{
   int  var;
   int  *ptr;
   int  val;   var = 3000;   // lay dia chia cua bien var
   ptr = &var;   // Lay gia tri co san tai ptr
   val = *ptr;
   cout << "Gia tri cua var la: " << var << endl;
   cout << "Gia tri cua ptr la: " << ptr << endl;
   cout << "Gia tri cua val la: " << val << endl;   return 0;
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Toán tử con trỏ trong C++
toan_tu_trong_cplusplus.jsp