※ 다차원(2차원) 배열의 포인터 타입 결정 포인트
- 포인터가 가리키는 요소의 자료형
- 포인터 연산시 증가하는 바이트의 크기
※ 2차원 배열 이름
- 포인터가 가리키는 요소의 자료형이 같다 해도 포인터 연산시 증가하는 값(바이트)의 크기 불일치! (포인터 연산 결과도 생각.)
======================================================
#include <stdio.h>
int main(void)
{
int a[3][2]={1, 2, 3, 4, 5, 6};
printf("a[0] : %d \n", a[0]);
printf("a[1] : %d \n", a[1]);
printf("a[2] : %d \n", a[2]);
printf("a : %d \n", a);
return 0;
}
결과
=======================================================================
#include <stdio.h>
int main(void)
{
int a[3][2]={1, 2, 3, 4, 5, 6};
printf("a : %d \n", a);
printf("a+1 : %d \n", a+1);
printf("a+2 : %d \n", a+2);
printf("a[0] : %d \n", a[0]);
printf("a[1] : %d \n", a[1]);
printf("a[2] : %d \n", a[2]);
printf("*(a+0) : %d \n", *(a+0));
printf("*(a+1) : %d \n", *(a+1));
printf("*(a+2) : %d \n", *(a+2));
printf("\n");
printf("a : %d \n", sizeof(a));
printf("a+1 : %d \n", sizeof(a+1));
printf("a+2 : %d \n", sizeof(a+2));
printf("a[0] : %d \n", sizeof(a[0]));
printf("a[1] : %d \n", sizeof(a[1]));
printf("a[2] : %d \n", sizeof(a[2]));
printf("*(a+0) : %d \n", sizeof(*(a+0)));
printf("*(a+1) : %d \n", sizeof(*(a+1)));
printf("*(a+2) : %d \n", sizeof(*(a+2)));
return 0;
}
결과
'C_C++' 카테고리의 다른 글
2차원 배열 이름의 포인터 타입 3 (0) | 2010.11.28 |
---|---|
2차원 배열 이름의 포인터 타입 2 (0) | 2010.11.26 |
포인터의 포인터 - swap함수의 호출 (0) | 2010.11.26 |
포인터의 포인터 (0) | 2010.11.26 |
2차원 배열! 선언과 동시에 초기화 (0) | 2010.11.26 |