Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Gán con trỏ hàm (Function Pointer) trong C


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