Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 프로그램을 사용하여 함수에 포인터를 할당하는 방법은 무엇입니까?

<시간/>

함수에 대한 포인터

메모리에 함수 정의의 기본 주소를 보유합니다.

선언

datatype (*pointername) ();

함수 자체의 이름은 함수의 기본 주소를 지정합니다. 따라서 함수명을 이용하여 초기화를 진행합니다.

예를 들어,

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

예시 1

함수에 대한 포인터를 사용하여 함수를 호출하는 프로그램을 볼 것입니다 -

#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”);
}

출력

Hello

예시 2

함수에 대한 포인터의 개념을 설명하는 또 다른 프로그램을 생각해 봅시다 -

#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;
}

출력

21