#include <stdio.h>
int main(void){
int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int(*pa)[4];
int i, j;
pa = ary;
for (i = 0; i< 3; i++){
for (j = 0; j< 4; j++){
printf("%5d", pa[i][j]);
}
printf("\n");
}
}
### 코드 설명
- `int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};`는 3행 4열의 2차원 정수 배열 `ary`를 선언하고 초기화합니다. 이 배열은 총 3개의 행과 각 행에 4개의 열을 포함합니다.
- `int(*pa)[4];`는 각각 4개의 정수를 원소로 갖는 배열을 가리키는 포인터 `pa`를 선언합니다. 즉, `pa`는 4개의 정수를 갖는 배열의 포인터로, 2차원 배열의 행을 가리키는 데 사용됩니다.
- `pa = ary;`는 `pa` 포인터에 `ary` 배열의 첫 번째 행(즉, 첫 번째 배열)의 주소를 할당합니다. 배열 이름은 주소를 나타내므로, 이 할당은 `pa`가 `ary`의 첫 번째 행을 가리키게 합니다.
- 이중 for 루프를 사용하여 배열의 각 요소에 접근하고 이를 출력합니다. 외부 루프 `i`는 행을, 내부 루프 `j`는 열을 나타냅니다.
- `printf("%5d", pa[i][j]);`를 통해 각 요소를 출력합니다. `%5d`는 출력할 정수를 최소 너비 5칸에 오른쪽 정렬하여 출력하도록 지정합니다.
### 결과
이 코드는 2차원 배열 `ary`에 저장된 정수들을 다음과 같은 형태로 출력합니다:
```
1 2 3 4
5 6 7 8
9 10 11 12
```
각 숫자는 최소 5칸의 너비를 가지고 오른쪽으로 정렬되어 출력됩니다. 이 예제는 2차원 배열을 다루고, 배열에 대한 포인터를 사용하여 배열의 요소에 접근하는 방법을 보여줍니다.
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 15) 주소로 쓰이는 배열명과 배열의 주소 비교 (0) | 2024.09.13 |
---|---|
chapter 15) 이중 포인터를 사용한 포인터 교환 (0) | 2024.09.12 |
chapter 14) 2차원 배열의 값을 출력하는 함수 (0) | 2024.09.10 |
chapter 14) 2차원 배열의 다양한 초기화 (0) | 2024.09.09 |
chapter 14) 2차원 char 배열에 동물 이름을 초기화하는 방법 (0) | 2024.09.08 |