데이터 타입이란 데이터 값들의 모임과 그들 값들에 대한 미리 정의된 연산들의 집합이다.
사용자 정의 타입 : 타입에 대한 의미 있는 이름 사용을 통하여 향상된 판독성 제공, 프로그램 수정에 도움 typedef
객체 : 사용자 정의 추상 데이터 타입의 인스턴스로 사용
원시 데이터 타입: 다른 데이터 타입을 이용하여 정의되지 않은 데이터 타입
수치)
정수 : integer, 가장 공통된 기본 수치 데이터 타입, python은 하드웨어에 의해서 직접 지원되지 않는 정수 타입을 제공한다. 따라서 긴 정수 타입을 갖는다.
부동 소수점: 실수를 모델링, 그러나 실수에 대한 근사값일뿐, float 와 double
복소수: 어떤 프로그래밍 언어들만 복소수 데이터 타입 지원
십진수 : 사무 시스템을 위한 지원, COBOL, C#
불리언 : 단순한 이진 요소, True or False, 0이 거짓이고 0이 아닌 숫자가 참 혹은 0 이 거짓 1만 참 인 경우도 있다. 따라서 수치식을 불리언으로 사용하는건 적절하지 않다.
문자타입 : 문자 데이터는 수치 코딩으로 저장된다, Ascii(2^7), Unicode(2^16), 파이썬은 예외적으로 단일문자를 길이가 1인 문자스트링으로 지원한다.
- 파이썬의 스트링은 변경불가, Java의 String 클래스와 유사하다. 그러나 배열과 매우 유사해서 슬라이싱 가능
- 정적길이 스트링 : 스트링 생성시 결정, 파이썬의 String, 자바의 String 클래스
- 제한된 동적 길이 스트링 : 최대길이 까지가변적, C의 문자열 char[20]
- 동적 길이 스트링 : Java의 StringBuffer, 복잡한 기억공간 관리를 요구, 스트링의 길이와 이에 바인딩되는 기억공간은 동적으로 늘어나거나 줄어들어야 함, 동적 할당과 반환을 지원하는 세 가지 접근 방법
- 스트링을 연결리스트에 저장, 힙 영역 활용, 여분 메모리, 스트링 연산이의 복잡성
- 각각의 문자를 가리키는 포인터 배열로서 저장, 연결리스트 보다 더 빠름
- 스트링 전체를 인접한 기억공간 셀들에 저장, 새로운 메모리 영역을 찾고, 스트링의 이전 부분을 새로운 영역으로 이동, 스트링에 대해서 사용된 메모리 셀 회수
배열 : 동질적인 데이터 원소들의 집합체, 개개의 원소는 집단체에서 첫번째 원소의 상대적 위치에 의해서 식별, C언어와 JAVA는 동일한 타입의 데이터들만 배열에 속해야함, Python, JS는 typeless 하다. 다른 타입의 객체 또는 데이터 값들을 참조가 가능하기 때문이다. 따라서 원소는 동질적임.
- 집단체 이름, 첨자 또는 색인 => 배열 이름[첨자값리스트] -> 원소, 대부분의 언어들이 첨자에 대한 검사를 명세하지 않는다.
- 첨자 바인딩 배열 변수에 대한 첨자 타입의 바인딩은 보통 정적 이지만, 첨자 값의 범위는 때때로 동적 바인딩 된다. //20
'Computer Science > 기타' 카테고리의 다른 글
AUTOSAR 요약 (0) | 2023.12.18 |
---|---|
파이썬 기술 면접 (0) | 2023.12.05 |
(주)「윈스」 인턴십 합격 후기 & 코딩테스트 후기 (4) | 2022.12.15 |
기술 면접 질문 모음 (0) | 2022.12.10 |
로봇공학 정리 - 2(Robot Motion Planning [BFS, DFS, A*, DP], Path Smoothing, PID) (0) | 2022.11.03 |