1차원 배열과 2차원 배열에 관하여
회사원
2023.04.01
1차원 배열에서는 예를 들어
A[5]={1,2,3,4,5};
printf(A : %d,a[0]);
을 했을때 값은 1이 출력이 되게 됩니다.
2차원 배열에서는
A[3][2]={1,2,3,4,5,6];
printf(A : %d, a[0]);
을 했을때 값은 주소값이 출력이 되는데
왜 이렇게 되는지 궁금합니다.
조금 초보적인 질문인가요? ㅋㅋ;
자세하게 설명해주시면 감사하겠습니다!
아.. 그리고 또 한가지 더.
int arr[2][4] 이거는 포인터 연산시 8칸 건너 뛰잖아요?
근데 이거의 포인터 타입은 int (*pArr)[4] 인데.. 이거는 포인터연산시 4칸 건너 뛰는데
어떻게 int (*pArr)[4]이게 int arr[2][4]이거의 포인터 타입이 될수 있는거죠??
-
벤자민
a[0] 은 1차원 배열을 가리킬수있는 포인터입니다
a[0] = int a[2]
a[1] = int a[2]
a[2] = int a[2]
메모리상으로는 이게 맞지만 사실 일반적인 배열의 논리적 모델로 알고계시는게 프로그래밍하는데 더 도움이됩니다