[C++] 함수 포인터란?

유빈·2024년 10월 14일
0

C++

목록 보기
9/12
post-thumbnail

자료구조 Group Activity하다가 발견한 (*minus)(int, int).
너 뭔데?




함수 포인터

  • 다른 함수의 주소를 저장하고, 그 함수를 호출할 수 있는 포인터
  • 함수 자체를 변수처럼 전달하거나 저장할 수 있도록 해줌



#include <iostream>
using namespace std;

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

int subtraction(int a, int b) {
	return a - b;
}

int operation(int x, int y, int (*functocall)(int, int)) {
	int g;
	g = (*functocall)(x, y);
	return (g);
}

int main() {
	int m, n;
	int (*minus)(int, int) = subtraction;

	m = operation(7, 5, addition);
	n = operation(20, m, minus);
	cout << n;
	return 0;
}

[코드출처: 권오흠 교수님]
문제되면 바로 내리겠습니다..😢


	int (*minus)(int, int) = subtraction;`
  • 함수 포인터를 선언하는 구문
  • 포인터 변수 minus는 두 개의 int형 인자를 받아 int형 값을 반환하는 함수의 주소를 저장함

위의 코드에서 minus 변수는 subtraction 함수의 주소를 가리킨다.



int operation(int x, int y, int (*functocall)(int, int)) {
	int g;
	g = (*functocall)(x, y);
	return (g);
}

이 코드에서의 (*functocall)(int, int)도 포인터 변수이고 addition과 minus를 인자로 받아 해당 함수들을 호출하게 된다.



profile
🌱

0개의 댓글