Thế nào là khai báo mảng gián tiếp

Thế nào là khai báo biến mảng gián tiếp? Cấu trúc khai báo mảng gián tiếp có khác gì so với cấu trúc khai báo mảng trực tiếp không? Sau đây, Hoc365 sẽ cùng bạn tìm hiểu trong bài viết này. Theo dõi ngay nhé.

Câu hỏi trắc nghiệm

Thế nào là khai báo biến mảng gián tiếp?

A. Khai báo mảng của các bản ghi B. Khai báo mảng xâu kí tự C. Khai báo mảng hai chiều D. Khai báo thông qua kiểu mảng đã có

Đáp án: D. Khai báo thông qua kiểu mảng đã có

Thế nào là khai báo biến mảng gián tiếp

Trả lời chi tiết: Thế nào là khai báo biến mảng gián tiếp?

Khai báo biến mảng gián tiếp là khai báo thông qua kiểu mảng đã có. Cụ thể khi ta khai báo một con trỏ và cấp phát bộ nhớ cho nó, sau đó dùng con trỏ này để trỏ tới một mảng. Khi đó, ta có thể truy xuất các phần tử của mảng thông qua con trỏ đó.

Cấu trúc khai báo mảng gián tiếp là:

Type < tên kiểu mảng > = array [<chỉ số đầu>..<chỉ số cuối>] of < kiểu phần tử >;

Var < tên biến mảng > : < tên kiểu mảng >;

Trong đó:

  • Kiểu phần tử là kiểu dữ liệu phần tử trong mảng.
  • Kiểu chỉ số gồm thường là một đoạn các số nguyên dạng n1,n2 với n1,n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu vf chỉ số cuối (n1<=n2).

Ví dụ:

Type mang=[1..100] of integer;

Var A:mang;

Cấu trúc khai báo mảng gián tiếp khác với cấu trúc khai báo mảng thông thường bởi vì ta không khai báo trực tiếp mảng, mà ta chỉ khai báo một con trỏ trỏ tới mảng.

Cấu trúc khai báo mảng gián tiếp có thể được sử dụng để xử lý các mảng động, tức là các mảng có số lượng phần tử không cố định và có thể thay đổi trong quá trình chạy chương trình.

Thế nào là khai báo biến mảng gián tiếp

Ví dụ về khai báo mảng gián tiếp

program mang_gian_tiep;uses crt;

varn, i: integer;arr: ^array of integer; // khai báo biến mảng gián tiếp

beginclrscr;write(‘Nhap so luong phan tu cua mang: ‘);readln(n);

// cập nhật bộ nhớ cho mảngnew(arr);SetLength(arr^, n);

for i := 0 to n – 1 dobeginwrite(‘Nhap phan tu thu ‘, i, ‘: ‘);readln(arr^[i]);end;

writeln(‘Cac phan tu trong mang la: ‘);for i := 0 to n – 1 dobeginwrite(arr^[i], ‘ ‘);end;

// giải phóng bộ nhớ đã cập nhật cho mảngdispose(arr);readln;end.

Trong ví dụ này, ta sử dụng con trỏ tên arr để trỏ tới một mảng có n phần tử. Để khai báo biến mảng gián tiếp, ta sử dụng dấu ^ để chỉ ra rằng arr là một con trỏ trỏ tới một mảng.

Sau khi khai báo biến mảng gián tiếp, ta sử dụng hàm new để cấp phát bộ nhớ cho mảng và hàm SetLength để thiết lập kích thước của mảng.

Sau đó, ta sử dụng vòng lặp để nhập giá trị cho từng phần tử của mảng. Cuối cùng, ta sử dụng vòng lặp khác để in ra giá trị của các phần tử trong mảng.

Khi đã không sử dụng đến mảng nữa, ta sử dụng hàm dispose để giải phóng bộ nhớ đã cấp phát cho mảng.

Trên đây là đáp án chi tiết cho câu hỏi thế nào là khai báo biến mảng gián tiếp và cấu trúc khai báo. Hy vọng những kiến thức mà chúng tôi cung cấp sẽ hữu ích với độc giả. Đừng quên theo dõi Hoc365 để cập nhật thêm kiến thức về tin học hay nhé.