Let's Study/Pointer
4. sha == sha[0] == &sha[0][0]
샤에테
2013. 3. 23. 10:10
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] 는 가리키는 주소만 같을 뿐 완전히 다르다는 걸 알게 됬습니다.