Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm thế nào để gán một con trỏ cho một hàm bằng chương trình C?

Con trỏ tới hàm

Nó chứa địa chỉ cơ sở của định nghĩa hàm trong bộ nhớ.

Tuyên bố

datatype (*pointername) ();

Bản thân tên của hàm chỉ định địa chỉ cơ sở của hàm. Vì vậy, quá trình khởi tạo được thực hiện bằng cách sử dụng tên hàm.

Ví dụ,

int (*p) ();
p = display; //display () is a function that is defined.

Ví dụ 1

Chúng ta sẽ thấy một chương trình để gọi một hàm bằng cách sử dụng con trỏ tới hàm -

#include<stdio.h>
main (){
   int (*p) (); //declaring pointer to function
   clrscr ();
   p = display;
   *(p) (); //calling pointer to function
   getch ();
}
display (){ //called function present at pointer location
   printf(“Hello”);
}

Đầu ra

Hello

Ví dụ 2

Chúng ta hãy xem xét một chương trình khác giải thích khái niệm con trỏ tới hàm -

#include <stdio.h>
void show(int* p){
   (*p)++; // add 1 to *p
}
int main(){
   int* ptr, a = 20;
   ptr = &a;
   show(ptr);
   printf("%d", *ptr); // 21
   return 0;
}

Đầu ra

21