Pointer Access Operators

Trong Arduino, Pointer Access Operators (Toán tử truy cập con trỏ) được sử dụng để làm việc với con trỏ và tham chiếu. Có hai toán tử chính trong C++ (ngôn ngữ sử dụng trong Arduino) liên quan đến con trỏ: * (dereference operator)& (reference operator). Dưới đây là mô tả chi tiết về chúng:

1. * (Dereference Operator) - Toán tử giải tham chiếu

  • Mô tả: Toán tử * được sử dụng để truy cập giá trị mà con trỏ đang trỏ tới. Nó giúp giải tham chiếu (dereference) con trỏ để lấy giá trị thực tế mà con trỏ đó lưu trữ.
  • Cú pháp:
     value = *pointer;
  • Ví dụ:

     int a = 10;
     int* ptr = &a;  // Con trỏ ptr lưu địa chỉ của biến a
     // Sử dụng toán tử * để truy cập giá trị mà ptr đang trỏ tới
     int b = *ptr;  // b = 10

    Giải thích:

  • int a = 10;: Khai báo biến a có giá trị là 10.
  • int* ptr = &a;: Khai báo con trỏ ptr và gán cho nó địa chỉ của biến a.
  • int b = *ptr;: Sử dụng toán tử * để giải tham chiếu và lấy giá trị mà ptr đang trỏ tới, đó chính là giá trị của a, tức là 10.

2. & (Reference Operator) - Toán tử tham chiếu

  • Mô tả: Toán tử & được sử dụng để lấy địa chỉ của một biến, tức là nó trả về địa chỉ bộ nhớ của biến thay vì giá trị của nó. Đây là cách để tạo con trỏ, vì bạn cần biết địa chỉ của biến để con trỏ có thể trỏ tới.
  • Cú pháp:
     pointer = &variable;
  • Ví dụ:

     int a = 10;
     int* ptr = &a;  // Lấy địa chỉ của a và gán cho ptr

    Giải thích:

  • int a = 10;: Khai báo biến a có giá trị là 10.
  • int* ptr = &a;: Lấy địa chỉ của biến a bằng toán tử & và gán nó cho con trỏ ptr.

Tóm tắt:

Toán tử Tên gọi Mô tả Ví dụ
* Toán tử giải tham chiếu Truy cập giá trị mà con trỏ đang trỏ tới. int b = *ptr;
& Toán tử tham chiếu Lấy địa chỉ của một biến. ptr = &a;