1차원 배열의 포인터형
1차원 배열의 이름은 배열의 첫 번째 요소의 주소를 나타내는 포인터로 사용될 수 있습니다. 예를 들어, int arr[10];이라는 배열이 있다면, arr은 int * 타입의 포인터로 취급될 수 있습니다. 이는 arr이 int 타입의 데이터를 가리키는 포인터임을 의미합니다.
int arr[10];
int *p = arr; // 배열 이름을 포인터 변수에 할당
여기서 p와 arr는 모두 배열의 첫 번째 요소를 가리키지만, arr은 배열 자체를 나타내는 상수 포인터로, 그 크기를 변경할 수 없다.
2차원 배열의 포인터형
2차원 배열의 경우, 배열 이름은 첫 번째 행을 가리키는 포인터로 사용된다. 2차원 배열은 사실 배열의 배열로, 각 행이 연속된 메모리 블록으로 저장된다. 예를 들어, int arr[3][4];라는 2차원 배열이 있다면, arr은 int (*)[4] 타입의 포인터로 취급될 수 있다. 이는 arr이 4개의 int 요소를 갖는 배열을 가리키는 포인터임을 의미한다.
int arr[3][4];
int (*p)[4] = arr; // 2차원 배열의 첫 번째 행을 가리키는 포인터
여기서 p는 int[4] 타입의 배열을 가리키는 포인터이다. 즉, p는 2차원 배열의 각 행을 가리킬 수 있으며, p+1은 배열의 두 번째 행을 가리키게 된다.
'윤성우의 C Programming' 카테고리의 다른 글
'배열 포인터' 와 '포인터 배열'을 혼동하지 말자 (0) | 2024.03.02 |
---|---|
2차원 배열 arr, arr[0], arr[0][0] 의 차이 (0) | 2024.03.02 |
포인터 배열과 포인터 배열의 포인터 형 (0) | 2024.03.02 |
Chapter 14. 포인터와 함수에 대한 이해 (0) | 2024.03.02 |
Chapter 12. 포인터의 이해 (0) | 2024.02.28 |