Chương 9
KIỂU CON TRỎ VÀ BIẾN ĐỘNG
10.1 KHÁI NIỆM
Biến tĩnh được cấp phát vùng nhớ trong DataSegment (64KB - IMB PC), tồn tại cùng với khối chương trình mà nó được khai báo. Biến động được lưu trữ trong vùng nhớ Heap, khi cần có thể tạo ra để chứa dữ liệu, khi không cần có thể xoá. Biến động không có tên và do con trỏ quản lý.
Biến con trỏ (Pointer variable): biến đặc biệt có kích thước 2 bytes, không dùng để chứa dữ liệu mà chứa địa chỉ của biến động.
Biến con trỏ có 2 loại: định kiểu và không định kiểu. Biến con trỏ không định kiểu sẽ có kiểu như biến con trỏ định kiểu mà nó được gán.
NIL: giá trị hằng đặc biệt của biến con trỏ để báo con trỏ không trỏ vào đâu. Có thể gán Nil cho bất kì biến con trỏ nào.
10.2 KHAI BÁO
TYPE KieuCT = ^KieuDL; trong đó KieuCT - từ tự đặt xác định kiểu con trỏ, KieuDL - kiểu dữ liệu của biến động do biến con trỏ quản lý (Real, String, Array, Record, ...).
Cách 1: VAR BienCT : KieuCT; Cách 2: VAR BienCT : ^KieuDL;
VD 10.1 (khai báo kiểu, biến con trỏ) TYPE {Định nghĩa các kiểu con trỏ} RealPtr = ^Real; svPtr = ^HosoSV; HosoSV= RECORD hoten: String[25]; lop: String[5]; dtb: Real; END;
VAR {Khai báo các biến con trỏ} p: RealPtr; {biến con trỏ chứa đ/c biến động kiểu Real} sv: svPtr; { ~ kiểu HosoSV} p2: ^Char; { ~ kiểu Char} p0: Pointer; {biến con trỏ không định kiểu}
Chia sẻ với bạn bè của bạn: |