Cấp phát ô nhớ dư, gây ra lãng phí ô nhớ. Cấp phát ô nhớ thiếu, chương trình thực thi bị lỗi. Để tránh những hạn chế trên, ngôn ngữ C++ cung cấp cho ta một loại biến đặc biệt gọi là biến động với các đặc điểm sau: Chỉ phát sinh trong quá trình thực hiện chương trình chứ không phát sinh lúc bắt đầu chương trình. Khi chạy chương trình, kích thước của biến, vùng nhớ và địa chỉ vùng nhớ được cấp phát cho biến có thể thay đổi. Sau khi sử dụng xong có thể giải phóng để tiết. | CHƯƠNG I : TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢI CHƯƠNG II : MỘT SỐ THUẬT TOÁN TÌM KIẾM VÀ SẮP XẾP CHƯƠNG III : DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢI CHƯƠNG IV : CÂY I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ 25 N A M 4 int andy = 25 Địa chỉ ô nhớ Nội dung ô nhớ Bộ nhớ b = 4 char name[10] = “NAM” 2 5 7 9 2 5 7 9 4 8 9 int a[6] char ten[100] I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ 25 a = 25 Con trỏ là biến lưu địa chỉ của biến khác c = *pa I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ a b pa = &a pa b = a 25 c 25 andy = 25 ted = &andy 25 6442 andy = &andy = ted = &ted = *ted = I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ andy ted 25 6442 6442 8444 25 *P 25 andy Một số hạn chế có thể gặp phải khi sử dụng các biến tĩnh: Cấp phát ô nhớ dư, gây ra lãng phí ô nhớ. Cấp phát ô nhớ thiếu, chương trình thực thi bị lỗi. Để tránh những hạn chế trên, ngôn ngữ C++ cung cấp cho ta một loại biến đặc biệt gọi là biến động với các đặc điểm sau: Chỉ phát sinh trong quá trình thực hiện chương trình chứ không phát sinh lúc bắt đầu chương trình. Khi chạy chương trình, kích thước của biến, vùng nhớ và địa chỉ vùng nhớ được cấp phát cho biến có thể thay đổi. Sau khi sử dụng xong có thể giải phóng để tiết kiệm chỗ trong bộ nhớ. Tuy nhiên các biến động không có địa chỉ nhất định nên ta không thể truy cập đến chúng được. Vì thế, ngôn ngữ C++ lại cung cấp cho ta một loại biến đặc biệt nữa để khắc phục tình trạng này, đó là biến con trỏ (pointer) với các đặc điểm: Biến con trỏ không chứa dữ liệu mà chỉ chứa địa chỉ của dữ liệu hay chứa địa chỉ của ô nhớ chứa dữ liệu. Kích thước của biến con trỏ không phụ thuộc vào kiểu dữ liệu, luôn có kích thước cố định là 2 byte. I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ Toán tử lấy địa chỉ (&) Ví dụ : int a; int *p; p = &a; Toán tử tham chiếu (*) Ví dụ : int a, b; int *p; a = 2; p = &a; b = *p; I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ Cú pháp: * Ý nghĩa: Khai báo một biến có tên | CHƯƠNG I : TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ THUẬT GIẢI CHƯƠNG II : MỘT SỐ THUẬT TOÁN TÌM KIẾM VÀ SẮP XẾP CHƯƠNG III : DANH SÁCH LIÊN KẾT - NGĂN XẾP VÀ HÀNG ĐỢI CHƯƠNG IV : CÂY I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ 25 N A M 4 int andy = 25 Địa chỉ ô nhớ Nội dung ô nhớ Bộ nhớ b = 4 char name[10] = “NAM” 2 5 7 9 2 5 7 9 4 8 9 int a[6] char ten[100] I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ 25 a = 25 Con trỏ là biến lưu địa chỉ của biến khác c = *pa I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ a b pa = &a pa b = a 25 c 25 andy = 25 ted = &andy 25 6442 andy = &andy = ted = &ted = *ted = I. KIỂU CON TRỎ 1. Giới Thiệu Kiểu Dữ Liệu Con Trỏ andy ted 25 6442 6442 8444 25 *P 25 andy Một số hạn chế có thể gặp phải khi sử dụng các biến tĩnh: Cấp phát ô nhớ dư, gây ra lãng phí ô nhớ. Cấp phát ô nhớ thiếu, chương trình thực thi bị lỗi. Để tránh những hạn chế trên, ngôn ngữ C++ cung cấp cho ta một loại biến đặc biệt gọi là biến động với các đặc điểm sau: Chỉ phát sinh .