언어/C

함수를 가리키는 포인터, 보이드 포인터(void *)

이게될까 2023. 11. 17. 18:20
728x90
728x90
int add(int, int);
int main() {
	int a, b, c, d[20][20];
	unsigned int r;
	void* p;
	int (*padd)(int,int);
	padd = &add;
	scanf("%d", &a);
	scanf("%d %d", &b, &c);
	p = &a;
	printf("%d\n", *((int*) p));
	printf("%d", padd(b, c));

}
int add(int a, int b) {
	return a + b;
}

우리는 void* 로 p를 만들어 주었다. 그리하여 a의 주소를 p에 집어 넣고 p를 호출할 때 (int *)으로 형을 변경하여 출력해줬다.

함수를 가리키는 포인터는 위와 같이 포인터 하나와 그것이 가지는 변수의 형들을 입력해주면 된다. 그리고 함수의 주소를 넣어주고 그대로 필요한 값들을 넣어주면 사용할 수 있다.

ex)

6                           ->                  6

12    15                                       27

728x90

'언어 > C' 카테고리의 다른 글

c언어 복습 - 입력, python도 조금  (0) 2024.03.22
C언어 영상처리 - 과제 1  (0) 2024.03.20
오랜만에 C언어 복습  (1) 2024.03.12
포인터를 가리키는 포인터  (1) 2023.11.17
정수형(8 bits) 16진수 변환  (1) 2023.11.17