Các thao tác trên kiểu dữ liệu con trỏ

Một phần của tài liệu Giáo trình cấu trúc dữ liệu và giải thuật (Trang 49 - 50)

Giả sử ta cĩ khai báo:

KiểuCơSởT *BiếnConTrỏ_1, *BiếnConTrỏ_2, BiếnCơSởT;

- Tốn tử gán địa chỉ cho biến con trỏ:

BiếnConTrỏ = địa_chỉ;

Đặc biệt, địa chỉ này cĩ thể là NULL. Cĩ thể gán hằng NULL cho bất kỳ biến con trỏnào.

BiếnConTrỏ_1 = BiếnConTrỏ_2; BiếnConTrỏ = &BiếnCơSởT;

trong đĩ: & là tốn tử lấy địa chỉ của biến BiếnCơSởT cĩ kiểu KiểuCơSởT, khi đĩ ta nĩi: BiếnConTrỏ trỏđến (hay chỉ đến) BiếnCơSởT;

BiếnConTrỏ = địa_chỉ + trị_nguyên;

- Tốn tử truy xuất nội dung của đối tượng do biến con trỏBiếnConTrỏtrỏ đến:

*BiếnConTrỏ

Khi đĩ, nếu BiếnConTrỏ = &BiếnCơSởT thì *BiếnConTrỏ BiếnCơSởT.

* Ví dụ: Giả sử cho hai biến con trỏ p, q trỏđến hai biến kiểu ký tự e, f . Biến e, f cĩ địa chỉ bắt đầu lần lượt là a, b:

char e, f, *p, *q; e = ‘c’; f = ‘d’;

p = &e; q = &f; // giả sử p, q cĩ nội dung lần lượt là a và b Ta cĩ sơ đồ (1) sau đây:

e f

p a q b

a *p ≡ ‘c’ b *q ≡ ‘d’ (A)

* Sau lệnh gán hai con trỏ cùng kiểu q = p của sơ đồ (A) ta cĩ sơđồ (A’) thay đổi như sau:

e f

p a q b

a *q≡*p≡‘c’ a ‘d’ (A’)

* Sau lệnh gán hai biến do hai con trỏ cùng kiểu chỉđến *q = *p của sơđồ

(A) ta lại cĩ sơđồ (A’’) thay đổi như sau:

e f

p a q b

a *p ≡ ‘c’ b *q ≡ ‘c’ (A’’)

Hãy kiểm tra lại kết quả của các dãy lệnh trên một chương trình trong C++ (bài tập).

III.1.3. Biến động

Khi xây dựng các kiểu dữ liệu để biểu diễn các đối tượng trong một bài tốn cụ thể, dựa trên các đặc điểm của chúng, nếu ta khơng thể dự đốn hay xác định trước kích thước của chúng (do sựtồn tại, phát sinh mất đi của chúng tùy thuộc vào ngữ cảnh của chương trình hoặc vào người sử dụng chương trình) thì ta cĩ thể sử dụng biến động để biểu diễn chúng.

Một phần của tài liệu Giáo trình cấu trúc dữ liệu và giải thuật (Trang 49 - 50)