Con trỏ hàm
Lưu địa chỉ bắt đầu của định nghĩa hàm trong bộ nhớ.
Khai báo
kieu_tra_ve (*ten_con_tro)();
Tên hàm chính là địa chỉ hàm. Khởi tạo: con_tro = ten_ham;
Ví dụ 1: Gọi hàm qua con trỏ
#include <stdio.h>
void display() {
printf("Hello");
}
int main() {
void (*p)(); // con trỏ hàm void, không tham số
p = display;
p(); // gọi qua con trỏ
return 0;
}
Kết quả
Hello
Ví dụ 2: Con trỏ hàm có tham số
#include <stdio.h>
void show(int *p) {
(*p)++; // tăng giá trị trỏ đến
}
int main() {
int a = 20;
int *ptr = &a;
show(ptr);
printf("%d", *ptr); // 21
return 0;
}
Kết quả
21