티스토리 뷰

2021.03.03.수

배열 요소의 주소와 배열의 주소
int arr[5];

✔  배열명 arr 자체가 주소로 쓰일 때에는 첫 번째 요소를 가리키므로 arr+1 은 4byte 증가해 다음 요소를 가리킨다.

✔  반면 배열의 주소인 &arr는 배열의 전체를 가리키므로, &arr+1 은 요소의 개수 x 4byte 증가한다.

✔  배열의 주소에 정수를 더하는 연산은 가능하지만

  배열에 할당된 메모리 영역을 벗어날 수 있으므로 특별한 경우가 아니라면 사용하지 않는다.

 

✔ 실행결과를 확인하면 배열의 첫 번째 요소의 주소를 가지는 배열의 주소주소 연산자&를 사용한 배열의 주소는 동일하다.

✔ 하지만 +1 연산의 결과는 다른 것을 확인할 수 있다.

첫 번째 주소를 가지는 배열명의 주소는 +1 연산하게 되면, 1x4byte만큼 증가해서 두 번째 요소의 주소를 가리킨다.

주소 연산자&를 사용한 배열의 주소는 +1 연산하게 되면, 배열의 크기만큼 증가하게 되어

총 1x20byte 증가해서 배열의 마지막 번지를 의미하는 주소를 가리킨다.

 

 

 

 

 

 

[참고] 한빛미디어-혼자 공부하는 C언어 유튜브 강의 / 엘리스 트랙-혼자 공부하는 C언어 / 길벗-C언어 코딩 도장 / 위키백과

댓글
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
최근에 올라온 글
글 보관함
Total
Today
Yesterday