14. 14
다차원 배열
2차원 배열의 이해
2행 4열의 값 변경
가장 기본적인 방법
arr[1][3]
1 2 3 4
5 6 7 99
9 10 11 12
15. 15
다차원 배열
2차원 배열의 이해
2행 4열의 값 변경
배열 연산자 특성을 이용한 표현 방식 변경
arr[1][3] == *(arr[1]+3)
1 2 3 4
5 6 7 99
9 10 11 12
16. 16
다차원 배열
2차원 배열의 이해
2행 4열의 값 변경
실제 저장 방식을 이용한 1차원 배열 접근
1 2 3 4 5 6 7 99 9 10 11 12
17. 17
다차원 배열
2차원 배열의 이해(implementation convention)
다음 코드에 대한 명령 수행 flow
int arr[3] = {1, 2, 3};
int idx;
for(idx=0; idx<sizeof(arr)/sizeof(len); idx++) {
printf("%dn", arr[idx]);
}
18. 18
다차원 배열
2차원 배열의 이해(implementation convention)
다음 코드에 대한 명령 수행 flow
definition : 2번
for문(5n + 1 = 16번)
idx = 0 : 1번
idx<sizeof(arr)/sizeof(len) : 4번 * n번
sizeof(), 나누기, 비교
idx++ : 1번 * n번
총 18번의 명령 수행
19. 19
다차원 배열
2차원 배열의 이해(implementation convention)
다음 코드에 대한 명령 수행 flow
int arr[3] = {1, 2, 3};
int idx;
int len;
for(idx=0, len=sizeof(arr)/sizeof(len); idx<len; idx++) {
printf("%dn", arr[idx]);
}
20. 20
다차원 배열
2차원 배열의 이해(implementation convention)
다음 코드에 대한 명령 수행 flow
definition : 3번, len 추가
for문(2n + 4 = 10번)
idx = 0 : 1번
len = sizeof(arr)/sizeof(len) : 4번
sizeof(), 나누기, 대입
idx<len : 1번 * n번
idx++ : 1번 * n번
총 13번의 명령 수행
21. 21
포인터의 포인터
n중 포인터
싱글 포인터, 더블 포인터, 트리플 포인터?
4중? 5중? 6중? n중?
포인터는 그냥 포인터 일뿐
cdef
a 10
a 10b
a 10b
싱글
더블
?