Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ truy cập phần tử mảng bằng con trỏ


Con trỏ (pointer) lưu trữ vị trí bộ nhớ hoặc địa chỉ của biến. Nói cách khác, con trỏ tham chiếu đến một vị trí bộ nhớ và lấy giá trị tại vị trí đó gọi là giải tham chiếu (dereferencing) con trỏ.

Chương trình dùng con trỏ truy cập một phần tử đơn lẻ của mảng:

Ví dụ

#include <iostream>
using namespace std;

int main() {
  int arr[5] = {5, 2, 9, 4, 1};
  int *ptr = &arr[2];
  cout << "Giá trị tại chỉ số 2 của mảng: " << *ptr;
  return 0;
}

Kết quả đầu ra

Giá trị tại chỉ số 2 của mảng: 9

Trong chương trình, con trỏ ptr lưu địa chỉ phần tử tại chỉ số 2 (phần tử thứ 3) trong mảng là 9:

int *ptr = &arr[2];

Con trỏ được giải tham chiếu và giá trị 9 hiển thị bằng toán tử gián tiếp (*):

cout << "Giá trị tại chỉ số 2 của mảng: " << *ptr;

Chương trình khác dùng một con trỏ duy nhất truy cập TẤT CẢ phần tử mảng:

Ví dụ

#include <iostream>
using namespace std;

int main() {
  int arr[5] = {1, 2, 3, 4, 5};
  int *ptr = &arr[0];
  cout << "Các giá trị trong mảng: ";
  for (int i = 0; i < 5; i++) {
    cout << *ptr << " ";
    ptr++;
  }
  return 0;
}

Kết quả đầu ra

Các giá trị trong mảng: 1 2 3 4 5

Trong chương trình, con trỏ ptr lưu địa chỉ phần tử đầu tiên của mảng:

int *ptr = &arr[0];

Sau đó, vòng lặp for giải tham chiếu con trỏ và in tất cả phần tử. Con trỏ tăng sau mỗi vòng lặp (trỏ đến phần tử tiếp theo). In giá trị tại vị trí con trỏ:

for (int i = 0; i < 5; i++) {
  cout << *ptr << " ";
  ptr++;
}