티스토리 뷰

Coding/C

함수 리턴 및 메모리 접근

빠리빵 2018. 5. 28. 21:28
#include 

int a[2][3] = { {1,2,3},{4,5,6} };
int b[2][3] = { { 10,20,30 },{ 40,50,60 } };
int(*c[2])[3] = { b, a };
int(**p)[3] = c;

int (*f1(void))[3]{
	return c[1];
}

int (*(*f2(void)))[3] {
	return c + 1;
}

int(*f3(void)){
	return a[0] - 1;
}

int(**f4(void))[3]{
	return p;
}

int(*(*f5(void))[2])[3]{
	return &c;
}

// 6을 출력하려면?
int main() {
	printf("%d\n", f1()[1][2]);
	printf("%d\n", f2()[0][1][2]);	// == (f2()-1)[1][1][2]
	printf("%d\n", f3()[6]);		// (f3()+1)[5]
	printf("%d\n", f4()[1][1][2]);
	printf("%d\n", f5()[0][1][1][2]);

	system("pause");
}

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

함수 포인터 인자와 리턴 - 2  (0) 2018.06.09
함수 포인터 인자와 리턴  (0) 2018.06.09
함수 parameter 및 메모리 접근 연습  (0) 2018.05.28
type 분석 연습  (0) 2018.05.27
포인터 타입에 따른 메모리 접근..  (0) 2018.05.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함