배열
배열은 대부분의 프로그래밍 언어에서 기본적으로 제공하는 자료 구조 중 하나입니다. 배열은 동일한 데이터 타입들을 연속적으로 저장해야 할 때 쓰입니다. 배열을 사용하기 위해서는 배열의 데이터 타입과 배열의 크기 등을 지정해주면 됩니다.
int [] IntArr = new int [10];
double [] DblArr = new double [20];
(C++로 표현되었음을 알려드립니다)
위 두 코드를 살펴보면 첫번째 코드는 "IntArr이라는 이름의 배열을 선언하는데 데이터 타입은 int, 크기는 10으로 할거야!" 라는 뜻이고
두번째 코드는 "DblArr이라는 이름의 배열을 선언할건데 데이터 타입은 double, 크기는 20이야!" 라는 뜻입니다.
이처럼 배열을 정의해주면 원하는 위치 (index)에 해당하는 타입의 데이터를 크기 만큼 집어넣을 수 있습니다.
여기서 배열의 장점이 언급되었는데, 배열은 "연속적인 메모리 공간"으로서 인덱스 번호를 통해 어떤 위치든 쉽게 접근이 가능하기 때문에 반복문을 이용하는 등의 방법을 통해 알고리즘을 보다 손 쉽게 구현할 수 있습니다.
구조체
구조체는 사용자 정의 데이터 타입이라고도 부릅니다. 타입이 다른 데이터들을 한데 모아서 새로운 데이터 타입을 만드는 것입니다.
예를 들어보겠습니다. 만약 우리가 사람을 정의해야한다고 가정했을 때, 우리는 그 사람의 이름, 키, 몸무게, 혈액형 등의 정보를 각각 구현해야 합니다. 하지만 만약에 사람이라는 데이터 타입 존재한다면 따로 구현할 필요 없이 한번에 그 사람을 정의할 수 있습니다.
typedef struct Person {
char name[100];
int height;
int weight;
char BloodType;
} Person;
키178, 몸무게 72, 혈액형이 O인 홍길동을 정의해보겠습니다.
Person a = {"홍길동", 178, 72, 'O'}
이렇게 한데 모아서 정의해놓으면 우리는 조금 더 수월하게 사람을 정의할 수 있습니다.
포인터
포인터는 중요한 개념이기 때문에 포인터에 대한 자세한 설명은 다음에 따로 포스팅하도록 하겠습니다.
📌 연습 문제
'C언어로 쉽게 풀어쓴 자료구조' 카테고리의 다른 글
2장 순환 (0) | 2022.04.17 |
---|---|
1장 자료구조와 알고리즘 (0) | 2022.04.13 |
댓글