학습내용

  • 포인터와 배열
  • 포인터 연산

학습목표

  • 포인터와 배열의 관계에 대해 설명할 수 있다.
  • 포인터를 이용한 연산을 사용할 수 있다.

 

포인터와 배열

1. 포인터로 배열 참조

  • 배열명 : 배열의 시작 주소를 의미하는 상수

 1) 배열의 시작 주소를 구할 때는 & 없이 배열명만 사용

 2) 배열명을 포인터처럼 사용 가능

    - 인덱스를 사용하는 대신 배열의 시작 주소로 포인터 연산을 하면 배열의 특정 원소에 접근 가능

 

 3) * (arr + i)는 arr[i]를 의미

    - 배열의 시작 주소에서 데이터 타입 i개 크기만큼 증가된 주소에 있는 값

 4) 배열의 시작 주소로 초기화된 포인터를 이용해서 배열의 모든 원소에 접근 가능

 5) 포인터 변수를 배열 이름인 것처럼 사용 가능

 6) 포인터와 +, - 연산

   - p + N : p가 가리키는 데이터형 N개 크기만큼 증가된 주소가 연산의 결과

   - p - N : p가 가리키는 데이터형 N개 크기만큼 감소된 주소가 연산의 결과

   - * '포인터 - 포인터' 연산은 두 포인터의 차를 구하는 데 사용 *

2. 포인터와 배열 원소

 1) 배열의 원소를 가리키는 포인터는 배열의 어떤 원소든지 가리킬 수 있음

 2) 포인터가 배열의 원소가 아닌 일반 변수를 가리킬 때도 *(p+i) == p[i]는 항상 성립함

  • 배열과 포인터의 차이점
  • 배열이 메모리에 할당되고 나면, 배열의 시작 주소 변경 불가
  • 포인터 변수는 값을 변경할 수 있으므로, 포인터 변수에 보관된 주소는 변경 가능

 

포인터 연산

1. 포인터와 ++, -- 연산

  • 포인터에 대한 증감 연산( ++, --)도 포인터형에 의해 연산의 결과가 결정

2. 포인터 배열 처리

  • 포인터 배열 : 주소를 저장하는 배열
  • 형식 : 데이터 타입 * 포인터 변수명[크기];

 1) 포인터 배열의 각 원소에 배열의 시작 주소를 저장할 수도 있음

 2) arr[i]가 int배열의 시작 주소로 초기화되었을 때, arr[i]가 가리키는 배열의 원소에 접근하려면 arr[i][j]로 기술

 

학습정리

1. 포인터와 배열

  • 배열명은 배열의 시작 주소를 의미함
  • 포인터 변수를 배열명으로 초기화한 경우 포인터 변수를 배열처럼 인덱스를 사용하는 것이 가능함
  • 배열명은 변수가 아니므로 증감 연산자에 의한 연산은 불가능함

2. 포인터 이용

  • 배열명을 포인터 변수와 같이 연산에 의해 배열요소를 참조할 수 있음
  • 포인터 변수에 증감 연산자를 이용하여 배열요소를 참조할 수 있음
  • 후위 증감 연산자가, 전위 증감 연산자보다 우선순위가 높음

'국비지원 학원 - JAVA기반 스마트앱 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글

구조체  (0) 2021.07.30
포인터와 문자열  (0) 2021.07.30
포인터 기초  (0) 2021.07.28
문자열  (0) 2021.07.28
배열  (0) 2021.07.27