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ó
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.
Ví dụ về khai báo mảng gián tiếp
program mang_gian_tiep;
uses crt;var
n, i: integer;
arr: ^array of integer; // khai báo biến mảng gián tiếpbegin
clrscr;
write(‘Nhap so luong phan tu cua mang: ‘);
readln(n);// cập nhật bộ nhớ cho mảng
new(arr);
SetLength(arr^, n);for i := 0 to n – 1 do
begin
write(‘Nhap phan tu thu ‘, i, ‘: ‘);
readln(arr^[i]);
end;writeln(‘Cac phan tu trong mang la: ‘);
for i := 0 to n – 1 do
begin
write(arr^[i], ‘ ‘);
end;// giải phóng bộ nhớ đã cập nhật cho mảng
dispose(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é.
Bài viết liên quan
Em cần biết thông tin gì của người mà em muốn gửi thư điện tử cho họ?
Tại sao khi lập mối quan hệ giữa hai trường của hai bảng nhưng Access lại không chấp nhận?
Trong một bài trình chiếu có thể có bao nhiêu trang chiếu?
Trong trang web liên kết hay siêu liên kết là gì? Có vai trò như thế nào?
Người nào có vai trò chịu trách nhiệm quản lý các tài nguyên?
Thiết bị nào xuất dữ liệu văn bản từ máy tính ra ngoài?
Trong khi nhập dữ liệu cho bảng muốn chèn thêm một bản ghi mới ta thực hiện?
Các thao tác thay đổi hình thức biểu mẫu gồm?
Để nâng cao hiệu quả của việc bảo mật ta cần phải?
Phát biểu nào dưới đây không phải là bảo mật thông tin trong hệ cơ sở dữ liệu?
Phát biểu nào dưới đây sai khi nói về mã hóa thông tin?
Thuật ngữ quan hệ dùng trong hệ cơ sở dữ liệu quan hệ là để chỉ đối tượng?
Đáp án chi tiết: Có mấy cách tạo biểu mẫu?
Đáp án: Chọn phát biểu đúng về khai thác cơ sở dữ liệu?
Tạo bảng trong cơ sở dữ liệu quan hệ nhằm mục đích nào dưới đây?
Chi tiết: Trong Access khi tạo liên kết giữa các bảng thì?