3. 배열포인터에서
int sha[3][2];
int (*psha)[2];
psha = sha일 때 배열 sha는 배열의 첫번째 주소를 가리킨다고 했었습니다.
그렇다면
sha == sha[0] == &sha[0][0]
이건 맞는 문장일까요?
맞는 문장이네요.
하지만 주소만 보고 정말 저 문장이 똑같다고 할 수 있을까요.
sha는 전체 배열을 뜻하고 sha[0]은 0행 전체를, sha[0][0]은 [0][0] 하나를 가리키고 있습니다.
그래서 sha는 3 x 2 x 4 인 24가 나오고
sha[0]은 2 x 4
sha[0][0]은 4가 나옵니다.
이로써
sha == sha[0] == &sha[0][0] 는 가리키는 주소만 같을 뿐 완전히 다르다는 걸 알게 됬습니다.
'Let's Study > Pointer' 카테고리의 다른 글
5. *p와 p[]의 차이. (2) | 2013.05.07 |
---|---|
3. 배열포인터, 이젠 아무대나 *쓰지말자! (0) | 2013.03.22 |
2. 포인터가 4바이트인 이유 (1) | 2013.03.21 |
1. *의 두가지 의미 (0) | 2013.03.21 |