데브준우 2022. 6. 11. 16:51

자료구조란?

 

데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계

 

데이터 단위는 데이터를 구성하는 한 덩어리라고 생각하면 되며,

자료 구조는 쉽게 말해서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이라고 한다.

 

 

배열

 

배열은 같은 자료형의 변수로 이루어진 요소(element)가 모여 직선 모양으로 줄지어 있는 자료구조

 

C언어 배열의 선언은 아래와 같이 한다.

 

자료형 배열이름[요소의 개수];

 

- 배열의 선언 

 

상수를 정의 후에 배열을 선언 할 수 있다.

#include<stdio.h>

#define N 5 // 배열 요소의 개수를 정의한다.

int main(void)
{
	int a[N];
}

 

배열의 요솟값을 초기화 하며 배열 선언하기

 

#include<stdio.h>

int main(void)
{
	// 배열의 인덱스는 0부터 시작
	// a[0] = 1, a[1] = 2 ~ 순서대로 초기화가 된다.
	int a[5] = {1,2,3,4,5}; 
    
    
    // 배열의 요소 개수 알아내기
    int count = sizeof(a) / sizeof(a[0]);
}

 

a라는 5개의 요소를 가진 배열의 {} 중괄호 안에 차례대로 값을 넣어서 초기화를 시켜줄 수 있다.

 

배열의 요소 개수는 sizeof(배열)로 전체 배열이 할당된 메모리 크기 나누기

sizeof(배열[0])로 첫 번째 요소가 할당된 크기를 나눠주면 요소 개수가 나온다.

 

위의 int형 배열로 예를들면, 총 배열의 크기는 = 4byte * 5 = 20byte 이고,

a[0] 은  4byte 이기 때문에  20 / 4 를 해서 배열의 요소 개수가 5개가 된다.

 

int형 이니까 총 배열의 크기 /  sizeof(int) 를 할 수도 있지만, 자료형이 달라질때를 대응하기 위와 같이 하는게 좋을 것 같다.

 

 

요소의 개수를 정해주지 않고 값만을 넣어서 선언 할 수도 있다.

#include<stdio.h>

int main(void)
{
	int a[] = {1,2,3,4,5}; 
}

 

 

다음에는 메모리의 구조와 메모리 할당을 위한 함수 calloc,malloc을 복습 할 예정이다.

 

 

 

 공부하는 과정이니 틀린 내용이 있다면 언제든 댓글로 지적해주시면 감사하겠습니다!