반응형
2차원 배열 두개를 정의했습니다. ar1 은 3행 2열의 배열이고, ar2 는 2행 3열의 배열입니다. 1씩 더해서 주소를 출력했습니다. 배열의 이름에 주소가 저장됩니다. 배열은 포인터입니다. 첫번째 원소를 가리키는 포인터입니다.
#include <stdio.h>
int main ()
{
int ar1[3][2];
int ar2[2][3];
printf("%p \n",ar1);
printf("%p \n \n",ar1+1);
printf("%p \n",ar2);
printf("%p",ar2+1);
}
결과는 아래와 같습니다.
3행2열의 배열은 1을 더하면 8이 증가합니다. 아래와 같은 이유 때문입니다.
첫번째 원소에서 세번째 원소가 되므로 4+4 만큼 주소가 shift 되는 것입니다.
2행3열인 배열은 1을 더하면 c만큼 증가하는데 c는 12입니다. 이유는 위와 같습니다. 첫번째 원소에서 네번째 원소가 되므로 4+4+4 만큼 주소가 shift 된 것입니다.
반응형
'C언어 > 배열' 카테고리의 다른 글
[C언어] 배열 명과 포인터의 차이 (0) | 2022.07.20 |
---|---|
[C언어] 배열에 문자를 하나씩 입력하는 경우 (널문자의 중요성) (0) | 2022.07.15 |
[C언어] 포인터 배열의 타입 (0) | 2022.07.07 |
[C언어] 다차원 배열 정의하는 방법 (0) | 2022.07.06 |
[C언어] 포인터 배열은 여러 주소를 배열로 저장한다 (0) | 2022.07.04 |
댓글