2차원 배열
참고 문헌 (Ch37): https://dojang.io/mod/page/view.php?id=306
2차원 배열의 선언 및 요소 접근
배열 선언: (자료형) (배열이름)[행 크기][열 크기] = 초기 값;
1 | int numArr[3][4] = { // 3행 4열 짜리 행렬을 선언 |
원소 접근: (배열이름)[행 인덱스][열 인덱스]
1 | int num1 = numArr[1][2]; // 2차원 배열에서 세로 인덱스 1, 가로 인덱스 2인 요소에 접근 |
1 |
|
2차원 배열 요소 0으로 초기화
1차원 배열에서 요소를 0으로 초기화하는 것과 같은 방법으로 진행된다!
1 | int main(){ |
2차원 배열의 요소에 값 할당하기
원소 값 할당: (배열이름)[행 인덱스][열 인덱스] = 값;
1 |
|
2차원 배열의 크기 구하기
1차원 배열과 마찬가지로 “sizeof”를 이용하여 구한다.
배열 전체에 sizeof를 적용하고, 한 행의 sizeof로 나눠주면 행의 개수가 나오고, 한 행에서 sizeof를 적용하고, 원소를 이루고 있는 자료형의 크기로 나눠주면 열의 개수가 나온다.
1 |
|
2차원 배열 요소 모두 출력
1 |
|
2차원 배열을 포인터에 넣기
단순한 생각: 1차원 배열 - 단일 포인터 -> 2차원 배열 - 이중 포인터
1 |
|
2차원 배열 포인터 선언: (자료형) ((배열포인터이름)*)**[열 크기]
1 | int (*numPtr)[4]; // 2차원 배열 포인터 선언 |
주의사항
1 | int *numPtr[4]; // int형 포인터 4개를 담을 수 있는 배열 선언 |
예시
1 |
|
2차원 배열 포인터도 일반적인 배열과 동일한 방법으로 원소 접근이 가능하다!
결과에서 볼 수 있는 것처럼 배열 포인터가 더 작은 메모리를 사용한다.
3차원 배열
3차원 배열 선언: (자료형) (배열이름)[높이][행 크기][열 크기]
예시
1 | int numArr[2][3][4] = { |