포인터 배열 , 배열 포인터
2024. 7. 24. 20:39ㆍ정보처리,전산/Clang
반응형
#include <stdio.h>
int main() {
int a[3][3] = {10, 20, 30, 40, 50, 60, 70, 80, 90};
// 포인터를 배열의 첫 번째 요소로 설정
int (p)[3] = a;
// (p[2] + 1) 은 a[2][1]의 값
// (p[0] + 3) 은 a[0][3]의 값을 (경계 밖)
printf("%d\n", (p[2] + 1) - (p[0] + 3));
return 0;
}
- a는 3x3 크기의 2차원 배열이다. 배열의 요소는 행 우선 순서로 초기화된다.
- p는 int[3] 타입의 포인터이다. 즉, p는 3개의 정수로 구성된 배열을 가리킨다. p는 a의 시작 주소를 가리킨다.
포인터와 배열 포인터 차이
- 배열 포인터: int (*p)[3]는 3개의 정수를 포함하는 배열을 가리키는 포인터이다. 즉, p는 2차원 배열 a의 각 행을 가리킨다.
- 포인터 배열: int *p[3]는 int 타입의 포인터를 3개 포함하는 배열이다. 즉, 포인터를 요소로 가지는 배열이다.
반응형
'정보처리,전산 > Clang' 카테고리의 다른 글
실제 코드 내에서 malloc을 호출하기 때문에 메모리를 힙에 저장한다 (0) | 2024.08.10 |
---|---|
변수의 범위(scope) (0) | 2024.07.26 |
switch case while (0) | 2024.07.19 |
구조체 포인터 : 도서관 도서 목록 (0) | 2024.07.19 |
소수구하기 (0) | 2024.07.18 |