티스토리 뷰

Coding/C

함수 포인터 인자와 리턴 - 5

빠리빵 2018. 6. 9. 15:26
 
#include 

// 40을 출력하려면?

int *f1(void) {
	static int a[4] = { 1,2,3,4 };
	return a;
}

int *f2(void) {
	static int a[4] = { 10,20,30,40 };
	return a;
}

int *(*fa[2])() = { f1, f2 };

int f4(void) {
	return 1;
}

?? func1(void) {
	return fa;
}

? ? func2( ?? p ?? ) {
	return func1()[p()];
}

void main(void) {
	printf("%d\n", func2(f4) ? ? );
}

/*
int *f1(void) {
	static int a[4] = { 1,2,3,4 };
	return a;
}

int *f2(void) {
	static int a[4] = { 10,20,30,40 };
	return a;
}

int *(*fa[2])() = { f1, f2 };

int f4(void) {
	return 1;
}

// fa -> int *(*[2])() -> 배열이니까 int *(**)()로 변환
int *(**func1(void))(){
	return fa;
}

// func1() -> fa리턴 -> int *(*[2])() type
// func1()[] -> int *(*)() type   ---> int *(*func2( p ))(){ 
// [ ] 안에는 int가 들어감 -> int p()
int *(*func2(int p ()))(){
	return func1()[p()];
}

// func2(f4) -> func2(1) -> func1()[1] -> fa[1] -> f2
// func2(f4)() -> f2() -> a
// func2(f4)()[3] -> a[3] -> 40
void main(void) {
	printf("%d\n", func2(f4)()[3] );
	system("pause");
}
*/

'Coding > C' 카테고리의 다른 글

const 위치 별 의미  (1) 2018.06.25
함수 포인터 인자와 리턴 - 4  (0) 2018.06.09
함수 포인터 인자와 리턴 - 3  (0) 2018.06.09
함수 포인터 인자와 리턴 - 2  (0) 2018.06.09
함수 포인터 인자와 리턴  (0) 2018.06.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함