1. Khai báo con trỏ hàm. Khi thực hiện chương trình, các hàm được tải vào bộ nhớ trong. Mỗi hàm được phân 1 vùng nhớ, địa chỉ lệnh đầu tiên của hàm trong bộ nhớ gọi là địa chỉ của hàm.
Khi lập trình tên hàm chính là địa chỉ của hàm trong bộ nhớ. Và địa chỉ này có thể được gán con một con trỏ có kiểu dữ liệu tương ứng (function pointer).
Cách khai báo một con trỏ hàm:
float (*fp) (int, float)
Lệnh trên có nghĩa: fp là một con trỏ hàm kiểu float có hai đối, một đối kiểu int và một đối kiểu float. Con trỏ hàm dùng để chứa địa chỉ của hàm, trong chương trình ta phải có lệnh gán tên hàm cho con trỏ hàm (kiểu hàm và kiểu con trỏ hàm phải tương thích). Sau phép gán ta có thể dùng con trỏ hàm thay cho tên hàm.
2. Cách dùng con trỏ hàm : chương trình tính diện tich tam giác
3. Tham số hình thức của 1 hàm là 1 con trỏ hàm
Chương trình tính tích phân cho thấy lợi ích của con trỏ hàm: hàm tính tích phân có thể lập một cách tổng quát không phụ thuộc vào hàm, có thể gọi nó để tính tích phân của một hàm tự xây dựng (hàm BacHai) hay một hàm chuẩn có sẵn trong thư viện (hàm sin trong cmath). Đối sô trong lời gọi là tên hàm
4. Cách khai báo một mảng con trỏ hàm:
float (*fp[10]) (float, int ) ;
Ý nghĩa: fp là mảng con trỏ hàm kiểu float, mỗi hàm có đối là float và int. Các con trỏ hàm là fp[0], fp[1], . . ., fp[9].
Ví dụ chương trình làm nhiệm vụ: in bảng giá trị của 4 hàm BinhPhuong (tự xây dựng), sqrt, exp, log (hàm mẫu trong cmath) với biến x = 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.
0 nhận xét:
Đăng nhận xét