cCcode

C Language [핵심정리] - 15 본문

C Language Basic

C Language [핵심정리] - 15

cCcode 2021. 5. 20. 21:17

1. 2차원 배열 사용하기 - 2

2차원 배열의 요소초기화 하는 방법은 다음과 같습니다.

2차원 배열 초기화
결과

2차원 배열의 요소에 할당하는 방법은 다음과 같습니다.

인덱스로 접근
결과

이처럼 1차원 배열2차원 배열은 초기화 하거나 인덱스로 접근하는 등 동일하다고 봐도 될 만큼 유사한 면이 많습니다.

2차원 배열의 크기를 구하는 법은 다음과 같습니다.

2차원 배열의 가로 세로 크기
2차원 배열의 크기
결과


그전에 1차원 배열단일 포인터에 넣을 수 있다고 말씀드렸죠. 그러면 2차원 배열이중포인터에 넣을 수 있지 않을까요?

이중 포인터에 2차원 배열을 할당
경고

어라..? 간접 참조 수준이 다르다는 경고가 뜨네요. 실행해보면

결과

numPtr[0][0]의 값이 출력되지 않습니다. 그래서 2차원 배열포인터에 담으려면 특별한 방법이 필요합니다.

2차원 배열을 이중 포인터에 저장

즉, 포인터를 선언할 때 *(Asterisk)포인터명을 괄호로 묶어준 뒤 [ ](대괄호)에 가로 크기를 지정합니다.

포인터 선언

풀어서 설명하면 가로 크기3인 배열을 가리키는 포인터라는 뜻입니다. 포인터의 위치는 전까지 세로 크기 위치한 곳이기 때문에 세로 위치(1차원 배열)만을 대체 했다 라고 말할 수 있습니다. 그러니까 해당 위치에는 이중 포인터가 아닌 단일 포인터가 들어갑니다.

2차원 배열과 포인터

+ int *numPtr[4]
int (*numPtr)[4]에서 괄호를 삭제한 int *numPtr[4]int 형 포인터 4개를 담을 수 있는 배열이라는 뜻입니다. 즉, 괄호가 있으면 배열을 가리키는 포인터, 없으면 포인터를 여러 개 담는 포인터 배열입니다.

포인터 배열
결과

'C Language Basic' 카테고리의 다른 글

C Language [핵심정리] - 17  (0) 2021.05.25
C Language [핵심정리] - 16  (0) 2021.05.23
C Language [핵심정리] - 14  (0) 2021.05.19
C Language [핵심정리] - 13  (0) 2021.05.18
C Language [핵심정리] - 12 + ∂  (0) 2021.05.17
Comments