이것이 C언어다(서현우) 10단원 요약
- 최초 등록일
- 2020.11.09
- 최종 저작일
- 2020.03
- 8페이지/ MS 워드
- 가격 2,000원
소개글
"이것이 C언어다( 서현우) 10단원 요약"에 대한 내용입니다.
목차
10장. 배열과 포인터
10.1. 배열과 포인터의 관계
10.2. 배열을 처리하는 함수
본문내용
10.1.1. 배열명의 정체
- 배열은 자료형이 같은 변수를 메모리에 연속으로 할당함 ➜ 각 배열 요소는 일정한 간격으로 주소 가짐
ex) int ary[5]; 의 배열이 메모리 100번지부터 할당되고 int형 변수의 크기가 4바이트라면, 각 배열 요소의 주소는 100, 104, 108, 112, 116번지가 됨
- 결국 첫 번째 요소의 주소를 알면 나머지 요소의 주소도 쉽게 알 수 있고, 각 주소에 간접참조 연산을 수행하면 모든 배열 요소를 사용할 수 있음
➜ 배열명은 컴파일 과정에서 첫 번째 배열의 주소로 바뀜
- 배열명으로 다른 배열 요소를 사용하는 것도 어렵지 않음 (∵배열명에 정수를 더하면 연속된 배열 요소의 주소를 쉽게 구할 수 있기 때문)
10.1.2. 배열명으로 배열 요소 사용하기
- 주소는 정수처럼 보이지만 자료형에 대한 정보를 갖고 있는 특별한 값임
➜ 연산을 자유롭게 할 수 없고 정해진 연산만 가능함
- 주소 + 정수 ➜ 주소 + (정수 x 주소를 구한 변수의 크기)
ex) 크기가 4바이트인 int형 변수의 주소 100번지에 1을 더한 결과는 101이 아닌 104가 됨
- 이런 연산 규칙은 배열을 사용할 때 유용함
- 배열명도 주소이므로 정수를 차례로 더하면 연속된 배열 요소의 주소를 구할 수 있고, 여기에 간접참조 연산을 수행하면 모든 배열 요소를 사용할 수 있음
- 배열 요소에 사용하는 대괄호는 연산자
(즉, 배열의 대괄호는 포인터 연산의 ‘간접참조, 괄호, 더하기’ 연산기능 가짐)
배열요소 표현식: ary[1] ↔ 포인터 연산식: * (ary + 1)
- 배열 요소를 사용할 때는 상황에 따라 대괄호나 포인터 연산식 중 적당한 것을 골라 쓰면 됨
- 특별한 경우가 아니면 대괄호를 사용하는 것이 쉬우며, &ary[2]와 같은 경우는 ary + 2로 쓰면 연산과정 줄일 수 있음
- 배열의 할당 영역을 벗어나는 포인터 연산식은 사용할 수 있는가?
참고 자료
없음