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
'Programing_Language > C' 카테고리의 다른 글
함수 포인터(Function Pointer) 와 보이드 포인터(Void*) (0) | 2016.11.02 |
---|---|
포인터와 배열(Pointer & Array) -(2/2) (0) | 2016.09.24 |
구조체(struct) (0) | 2016.09.23 |
포인터(Pointer) (0) | 2016.09.08 |
getenv 함수 -linux system programming 쉘 프로그래밍 (0) | 2016.09.04 |
댓글