Con trỏ là một biến dùng để chứa địa chỉ. Có nhiều kiểu con trỏ tương ứng với nhiều loại địa chỉ. Khi gán địa chỉ của 1 biến cho 1 biến con trỏ, mọi sự thay đổi trên nội dung ô nhớ con trỏ chỉ tới sẽ làm giá trị của biến thay đổi theo. | Chương 6 KIỂU CON TRỎ Khoa Hệ thống thông tin quản lý Hà Nội – 2013 Nội dung 06/06/2013 Chương 6-Kiểu con trỏ 2 Con trỏ và địa chỉ 1 Khai báo con trỏ 2 Con trỏ và mảng một chiều 3 Con trỏ và mảng nhiều chiều 4 Mảng các con trỏ 5 Cấp phát bộ nhớ động 7 Con trỏ hàm 6 1. Con trỏ và địa chỉ Ví dụ: float a=; Xác định một biến có tên a có kiểu float và có giá trị . Máy cấp phát cho x một vùng nhớ gồm 4 byte liên tiếp. Địa chỉ của biến là số thứ tự của byte đầu tiên Có nhiều kiểu địa chỉ khác nhau tương ứng với các kiểu biến khác nhau. 06/06/2013 Chương 6-Kiểu con trỏ 3/50 3 Con trỏ và địa chỉ Con trỏ là một biến dùng để chứa địa chỉ. Có nhiều kiểu con trỏ tương ứng với nhiều loại địa chỉ. Ví dụ: Con trỏ kiểu int chứa địa chỉ các biến kiểu int *a là giá trị được lưu trong bộ nhớ có địa chỉ a &a là địa chỉ bộ nhớ chứa giá trị a 06/06/2013 Chương 6-Kiểu con trỏ 4/50 2. Khai báo con trỏ Khai báo trực tiếp *; Trong đó: * là toán tử con trỏ Ví dụ: int *p1,m,n; p1=&n; *p1=10; /* ô nhớ do con trỏ p1 trỏ đến được gán giá trị 10 */ Chú ý: Khi gán địa chỉ của 1 biến cho 1 biến con trỏ, mọi sự thay đổi trên nội dung ô nhớ con trỏ chỉ tới sẽ làm giá trị của biến thay đổi theo. Ví dụ: int *p2,a=10; p2=&a; *p2=*p2+3; Khi đó a sẽ có giá trị 13. 06/06/2013 Chương 6-Kiểu con trỏ 5/50 5 Khai báo con trỏ (tt) Khai báo gián tiếp Ví dụ Kích thước của con trỏ Con trỏ chỉ lưu địa chỉ nên kích thước của mọi con trỏ là như nhau: Môi trường MD-DOS (16 bit): 2 bytes Môi trường Windows (32 bit): 4 bytes typedef *; ; typedef int *pint; int *p1; pint p2, p3; 06/06/2013 Chương 6-Kiểu con trỏ 6/50 6 Con trỏ NULL Khái niệm Con trỏ NULL là con trỏ không trỏ và đâu cả. Khác với con trỏ chưa được khởi tạo. NULL int n; int *p1 = &n; int *p2; // unreferenced local varialbe int *p3 = NULL; 06/06/2013 Chương 6-Kiểu con trỏ 7/50 7 Khởi tạo kiểu con trỏ Khởi tạo Khi mới khai báo, biến con trỏ được đặt | Chương 6 KIỂU CON TRỎ Khoa Hệ thống thông tin quản lý Hà Nội – 2013 Nội dung 06/06/2013 Chương 6-Kiểu con trỏ 2 Con trỏ và địa chỉ 1 Khai báo con trỏ 2 Con trỏ và mảng một chiều 3 Con trỏ và mảng nhiều chiều 4 Mảng các con trỏ 5 Cấp phát bộ nhớ động 7 Con trỏ hàm 6 1. Con trỏ và địa chỉ Ví dụ: float a=; Xác định một biến có tên a có kiểu float và có giá trị . Máy cấp phát cho x một vùng nhớ gồm 4 byte liên tiếp. Địa chỉ của biến là số thứ tự của byte đầu tiên Có nhiều kiểu địa chỉ khác nhau tương ứng với các kiểu biến khác nhau. 06/06/2013 Chương 6-Kiểu con trỏ 3/50 3 Con trỏ và địa chỉ Con trỏ là một biến dùng để chứa địa chỉ. Có nhiều kiểu con trỏ tương ứng với nhiều loại địa chỉ. Ví dụ: Con trỏ kiểu int chứa địa chỉ các biến kiểu int *a là giá trị được lưu trong bộ nhớ có địa chỉ a &a là địa chỉ bộ nhớ chứa giá trị a 06/06/2013 Chương 6-Kiểu con trỏ 4/50 2. Khai báo con trỏ Khai báo trực tiếp *; Trong đó: * là toán tử con trỏ Ví dụ: int .