본문 바로가기
Programing_Language/C

포인터와 배열(Pointer & Array) -(1/2)

by neohtux 2016. 9. 9.
728x90

□ 배열의 이름은 배열의 시작 주소이다.



 - 배열의 주소접근 예제)



위 그림에서 int형 변수 3개인 배열을 생성하였다.


첫번째 결과값의 배열의 첫번째 인덱스 array[0]의 주소(&)와 같은 주소를 갖는것을 확인 할 수 있다.


sizeof 함수를 사용하여 바이트 크기를 측정하면, 64bit인 경우 주소의 크기는 8바이트를 갖는것을 볼 수 있으나 (32bit인 경우 4바이트)


sizeof(array) <- 를 배열의 이름인 시작주소를 참조하였기때문에 24바이트가 나올수 있다는 생각을 할 수 있으나


sizeof(array) 의 array는 배열의 이름으로 주소 크기를 참조하는것이아닌 데이터타입 크기 * 배열의 수 를 측정한다는것을 헷갈리지말자.


sizeof의 파라미터가아닌 배열의 이름 그 자체로 접근하여 주소값을 확인하면 array과 array+0과 &array[0]의 쓰임이 같다는것을 알 수 있다


따라서, array+n == &array[n] (단,n은 0이상의 정수) 라는 접근을 할 수 있다는 결론을 낼 수 있다.





□ 포인터 변수를 통한 1차원 배열 요소의 주소 접근 및 연산을 통한 주소접근


예제1)






예제2) 포인터 가감산




300x250

댓글