종종 헷갈리는 pointer와 배열
2008-11-24*(pointer + n) 는 pointer[n] 과 같다. 겹쳐져 있으면 해석은 오른쪽부터.
이걸 알면 모두 OK.
pointer[x][y][z] 는 *(pointer[x][y]+z) pointer[x][y] 는 *(pointer[x]+y) pointer[x]는 *(pointer+x)
그러니 pointer[x][y][z]는 ((*(pointer+x)+y)+z)
추가로 알아둘 사항.
void * pp;
int a=35;
pp = &a;
int ppp[5][5] = { 0, };
printf("%dn",sizeof(pp));
printf("%dn",*(int*)pp);
printf("%dn",sizeof(ppp));
printf("%dn",sizeof(ppp[0]));
printf("%dn",sizeof(ppp[0][0]));
printf("%pn",ppp);
printf("%pn",ppp+1);
printf("%pn",*(ppp+2)+1);
printf("%pn",ppp[2]+1);
printf("%pn",&ppp[2][1]);
printf("%pn",ppp[0][0]+1);
pointer +1 은 pointer값 + sizeof(*pointer);