티스토리 뷰

#include 

int a[12] = { 1,2,3,4,5,6,7,8,9,10,11,12 };

int main() {
	int *p = a;
	char *q = (char *)a;
	int(*r)[4] = (int(*)[4])a;
	int(*s)[3] = (int(*)[3]) a;
	int(*t)[2][3] = (int(*)[2][3])a;

	printf("%d %d\n", p[0], p[1]);				// 1 2
	printf("%d %d\n", q[0], q[1]);				// 1 0  -> little endian 구조 생각하며... 10 00 00 00 저장
	printf("%#.8x , %#.8x\n", r[0], r[1]);		// 1000 1010 
	printf("%#.8x , %#.8x\n", s[0], s[1]);		// 1000 100c
	printf("%#.8x , %#.8x\n", t[0], t[1]);		// 1000 1018 -> int[2][3] 이 24byte 차지하기 때문. 
	printf("%d , %d", **t[0], **t[1]);			// 1 7 -> 메모리 그려보세요.
	system("pause");
}

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

함수 parameter 및 메모리 접근 연습  (0) 2018.05.28
type 분석 연습  (0) 2018.05.27
2차원 배열의 메모리 분석  (0) 2018.05.26
배열을 함수의 인자로 넘기는 경우 주의할 점  (0) 2018.05.22
1차원 배열의 포인터  (0) 2018.05.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함