본문 바로가기
Quality control (Univ. Study)/Data structure

자료구조론 기초(1)

by 생각하는 이상훈 2022. 9. 4.
728x90

C++

c++의 설계 철학

-엄격한 타입 검사, 범용 언어, 효율적, 이식성

-여러 가지의 프로그래밍 스타일을 지원(절차 지향, 데이터 추상화, 객체 지향, 일반화)

-프로그래머가 자유롭게 선택할 수 있도록 설계

-최대한 C와 호환

-플랫폼에 의존적이거나 일반적이지 않은 특징은 제거

 

c++의 특징

-클래스(class) => 클래스를 이용하여 하나의 객체의 속성과 동작들은 한곳으로 모아서 정의

-상속(inheritance) => 클래스를 상속받아서 기존의 코드를 재사용

-연산자 중복(operator overloading) => 대상에 따라서 동일한 연산자로 새로운 연산을 정의

-함수 중복(function overloading) => 매개 변수만 다르면 동일한 이름의 함수를 여러 개 만들 수 있음

-동적 메모리(new, delete) => 동적 메모리 할당과 해제를 하는 연산자

-제네릭(generics) => 클래스 정의를 자료형에 상관없이 재사용

 

c++의 실행 속도

c++의 장점

-속도가 빠름

-멀티패러다임 프로그래밍 지원

-하드웨어 접근 가능

-메모리의 효율적 활용

-c언어와의 호환성

-고성능 게임, 인공지능, 장치 드라이버에 적합


주소의 이해

메모리는 커널영역과 유저영역으로 나뉘는데 커널영역에는 kernel이 위치하고 있고 운영체제 시스템의 모든 것을 통제하는 핵심이다. 따라서 사용자가 직접 접근할 수 없으며, 접근하려면 system call을 통해 커널모드로 전환을 해야한다.

위는 유저영역의 코드 영역, 데이터 영역, 힙 영역, 스택 영역이다.

-코드 영역: 시스템이 알아들을 수 있는 명령어가 저장되는 영역으로 CPU가 데이터를 수행할 때

                   명령어를 한번에 하나씩 수행한다. 

-데이터 영역: 전역 변수와 static 변수가 저장되는 영역이다.

-힙 영역: 동적할당된 변수가 저장되는 영역이다. 런 타임에 크기가 결정된다.

-스택 영역: 함수 내의 지역 변수와 매개변수가 저장되는 영역이다. 컴파일 타임에 크기가 결정된다.

 


 

728x90

'Quality control (Univ. Study) > Data structure' 카테고리의 다른 글

ArrayStack(1)  (0) 2022.11.18
자료구조론(5)  (1) 2022.10.06
자료구조론(4)  (1) 2022.10.03
자료구조론(3)  (0) 2022.09.26
자료구조론(2)  (0) 2022.09.12