1. 연상배열
- 키라 불리는 값에 의해 접근되는, 순서를 갖지 않는 데이터 원소의 집합체
- 배열과 연상배열의 차이 : 일반적인 배열은 첨자가 저장될 필요가 없으나 연상배열은 사용자 정의 키가 배열에 함께 저장
-Perl의 연상배열(해시, hash) : 구현과정에서 원소들이 해시 함수를 통해서 저장되고 추출됨
- Perl의 연상배열의 크기
- 동적으로 변함
- 새로운 원소가 추가되어 미리 정한 수준까지 차면 커짐
- 원소가 삭제되거나 공 해시가 될 때에는 줄어듦
- Perl의 연상배열 탐색
- 장점 : 원소의 직접 탐색이 요구될 때 배열보다 훨씬 효율적
- 단점 : 모든 원소를 처리할 경우에는 배열이 더 효율적
2. 레코드
- 선언부 : 여러 필드들과 그들의 값에 대한 형을 기술
- 레코드의 특정 원소는 두 가지 수준의 구문기법에 의해 참조 -> 집합체의 이름 + 필드이름인 선택자
3. 포인터
- 어떤 객체에 대한 기억장치 주소 참조 방법
- 포인터 변수 : 객체를 참조하기 위한 기억장치 주소를 값으로 취하는 식별자
- 포인터의 유용성
- 실행 전에 결정되지 않은 배열의 크기 문제 -> 모든 객체에 각각의 명시적인 이름을 제공하지 않고 많은 항목을 동적으로 연결하여 사용하는 방법을 제공
-힙(heap) : 동적으로 객체가 배당되는 기억장소 영역 , 힙변수 > 힙에 배당되는 변수
- 포인터의 특징 : 프로그래밍 언어의 작성력을 향상시킴
- C/C++의 포인터
- 주소가 어셈블리 언어에서 사용되는 것처럼 사용 가능
- 포인터 산술 연산 가능 > 프로그램의 유연성 높음 > 허상 참조나 분실된 동적 변수 문제들 발생
- '*' : 역참조 연산자
- '&' : 변수의 주소를 생성하는 연산자
- 참조형 : 주로 함수 정의에서 형식 매개변수를 위해서 사용, 연산자 중복 표현 사용 시 유용
4. 자료형 변환
- 형검사
- 정적 형 검사 : 컴파일 시간에 수행, 강 자료형 요구, 효율적인 목적 코드 생성
- 동적 형 검사 : 실행 시간에 수행
- 형 변환 : 주어진 자료형의 값을 다른 자료형의 값으로 변환하는 것
- 묵시적 형 변환 : 컴파일러에서 자동으로 수행, 강제로 컴파일러에 요구, 자동변환 또는 강제변환
- 명시적 형 변환 : 개발자가 명시, 명령문으로 요구, 캐스트 명령어
'프로그래밍 > TIL(Today I Learned)' 카테고리의 다른 글
10강 영역과 수명(2) (0) | 2018.10.14 |
---|---|
9강 영역과 수명(1) (0) | 2018.10.14 |
6강 Context-free 문법의 효율화 (0) | 2018.10.14 |
7강 자료형 (0) | 2018.10.11 |
10강 자바 빈 사용하기 (0) | 2018.10.11 |