Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
1,5 MB
Nội dung
Chương Con trỏ (Pointer) Presenter: Nhập môn lập trình (C8) Slide Learning outcomes L.O.6.1 – Khai báo trỏ L.O.6.2 – Truy xuất liệu qua trỏ L.O.6.3 – Giải thích cách cấp phát nhớ động L.O.6.4 – Sử dụng phép toán trỏ L.O.6.5 – Sử dụng trỏ trỏ khác L.O.6.6 – Dùng trỏ với kiểu cấu trúc L.O.6.7 – Hiểu liên quan trỏ mảng Nhập môn lập trình (C8) Slide Kiểu trỏ (pointer) Định nghĩa Kiểu trỏ kiểu biến đặc biệt dùng để giữ địa (tham khảo) Dùng dấu * để định nghĩa Ví dụ: Tốn tử '&' cho phép gán địa biến vào trỏ sau : = & Ví dụ : Con trỏ biến dùng lưu giữ địa biến cho phép truy xuất biến cách gián tiếp Ứng dụng thường dùng trỏ tham số hàm Nhập môn lập trình (C8) Slide Con trỏ biến số (pointer) Ví dụ Nhập mơn lập trình (C8) Slide Con trỏ biến cấu trúc Ví dụ trỏ tham số hàm Định Định nghĩa nghĩa kiểu kiểu KieuHoso.h Định Định nghĩa nghĩa biến biến main.c Khai Khai báo báo biến biến Ham.h Nhập mơn lập trình (C8) Slide Con trỏ biến cấu trúc Ví dụ trỏ tham số hàm main.c Nhập môn lập trình (C8) Slide Con trỏ biến cấu trúc Ví dụ trỏ tham số hàm Ham.c Nhập môn lập trình (C8) Slide Con trỏ biến cấu trúc Chạy thử Nhập mơn lập trình (C8) Slide Pointer cấp phát động Ý tưởng Kiểu pointer thích hợp để quản lý liệu có độ lớn chưa biết trước thời điểm lập trình Ví dụ : double param[100][100]; // cấp phát 10.000 phần tử kiểu double hay double** param; // cấp phát pointer (double) (double**) (double*) Nhập môn lập trình (C8) A M N Ậ TR Slide Pointer cấp phát động Hiện thực Sau có trỏ đến ma trận, để có ma trận thực sự, ta dùng hàm malloc()(memory allocation) thư viện malloc.lib (#include malloc.h) để sinh vector phần tử Ví dụ : • Sinh m vector (m chưa biết trước) printf("Nhap M: ");scanf("%d",&m); param=(double**)malloc(m*sizeof(double*)); • Sinh n phần tử vector (n chưa biết trước) printf("Nhap N: ");scanf("%d",&n); for(i=0;i