Et Cetera
[자료구조] 자료(논리/포인터/문자열)의 표현 방법
sweetnew
2022. 6. 7. 23:43
반응형
1. 논리
논리 자료는 논리값을 표현하기 위한 자료 형식이다. 논리값은 참(True)과 거짓(False), 1과 0으로 표현할 수 있으며, 컴퓨터 내부에서는 보통 1byte로 표현한다.
(C언어에서 논리 표현 자료형은 'bool' 자료형을 사용하며, 0이 아닌 값은 True, 0을 False로 처리한다.)
<1byte 논리자료 표현>
구 분 | 1 | 2 | 3 |
참 |
최하위 비트 1 표시
0000 0001
|
전체 비트 1 표시
1111 1111
|
하나 이상의 비트 1 표시
0000 0100 등
|
거짓 |
전체 비트 0 표시
0000 0000
|
전체 비트 0 표시
0000 0000
|
전체 비트 0 표시
0000 0000
|
2. 포인터
포인터는 메모리의 주소를 표현하기 위한 자료 형식이다. 자료를 저장하고 있는 변수의 주소나 메모리의 특정 위치에 대한 주소를 저장하고, 주소 연산을 할 때 사용한다. 포인터를 사용하면 복잡한 자료 구조 연산을 메모리 주소 연산만으로 처리할 수 있으며, 메모리에 직접 접근이 가능하다.
(C언어에서 포인터는 *를 이용하여 표현한다.)
3. 문자열
문자열(String)은 여러 문자로 이루어진 문자의 그룹을 하나의 자료로 취급하여 메모리에 연속적으로 저장하는 자료 형식이다.
(C언어에서 문자열은 포인터 또는 배열을 사용한다.)
<문자열 저장 방법>
구 분 | 표현방법 | 메모리 이용률 | 탐색 시간 |
구분자 | 부분 문자열 사이에 구분자(;) 사용하여 저장 |
문자열 길이 + 구분자 길이
(효율적)
|
문자 비교 연산 시간 +
구분자 식별 시간
(비효율적)
|
고정 길이 | 가장 긴 문자열의 길이에 맞추어 고정 길이(배열) 저장 |
가장 긴 부분 문자열 길이 ×
부분 문자열 개수
(비효율적)
|
문자 비교 연산 시간
(효율적)
|
길이가 짧은 문자열에 대한 메모리 공간 낭비 발생하지만 처리 속도 빠름 | |||
포인터 | 부분 문자열을 연속 저장하고, 각 부분 문자열에 대한 포인터 사용 |
문자열 길이 +
포인터 저장 공간
(효율적)
|
문자 비교 연산 시간 +
포인터 주소 연산 시간
(효율적)
|
참고: 메가존아이티평생교육원, 자료구조 1주 2회
반응형