대외활동, 서포터즈/한빛아카데미 혼공학습단 12기

[혼공C] 5주차_배열

gureumsocute 2024. 8. 11. 23:06

수강신청을 앞두고 있습니다

무려 12일 ... 내일.....

공강은 없네요....... ( ͠° ͟ʖ ͡°)

다 신청되기만 한다면.. 풀학점 되겠지만

그래도 올클 기원합니다  ......

영강 수학 강의 3개 듣는 사람됨 

 

 

 

그런 김에 플레이리스트 공유합니다 🎧

https://music.youtube.com/playlist?list=PL2IFPDOX52cFwlz78y9fxla3rt0faOFQA&si=usQlFFuliZmrADbj

 


 

배열이란?

같은 형태의 많은 데이터를 반복문으로 처리하려고 할 때, 메모리에 연속적으로 저장해 놓고 쪼개서 사용하는 방법

선언을 통해 저장 공간을 확보하는데, 하나의 이름으로 한꺼번에 선언해야 한다.

 

배열 선언 예시는 다음과 같음

// 정수형 배열
int num[5];

// 실수형 배열
float precipitations[6];

// 문자형 배열
char letters[3];
char name[4] = "Chaeyeon";

 

 

대괄호([]) 속 숫자에 따라 개수나 순서가 달라진다.

이 값을 첨자(배열에서의 위치)라고 하며, 0부터 시작한다는 것을 기억해야 한다.

 

int num[3];이라면 0, 1, 2를 의미하는 것!

 

num[0] = 10;이라면?

0은 첫 번째를 의미한다고 했다.

따라서 첫 번째 배열 요소(순서)의 값은 10이 되는 것이다.

 

 

기억하자!

// 첫 번째 배열 요소에 10 대입
num[0] = 10;
// 두 번째 배열 요소에 20 대입
num[1] = 20;
// 첫 번째와 두 번째 요소를 더해 세 번째 요소에 저장
num[2] = num[0] + num[2]


// 만약 num[3]을 출력시키면 어떻게 될까?
// 값을 저장하지 않았으므로 쓰레기 값이 출력된다

 

 

 

배열 초기화

배열 요소를 지워야 하는데 값이 너무 많은 경우에는 초기화를 사용한다.

// 초기화
int num[100] = {0};

 

 

 

첨자에 값이 없으면 컴파일러가 알아서 할당한다.

int num[] = {1,2,3};

 

이런 식으로!

 

 

sizeof 연산자를 활용한 배열 처리

배열 요소의 개수를 직접 계산해 반복문에 사용함

 

 

char형 배열의 선언과 초기

** 저장할 문자열의 길이보다 최소한 하나 이상 크게 배열 선언하기!

널 문자를 저장하기 위해 여분의 공간이 필요하기 때문

 

이런 식으로! 널 문자는 문자열의 끝을 확인하기 위해 필요함

int main() {
    char str[80] = "applejam";

    printf("최초 문자열 : %s\n", str);
    printf("문자열 입력 : ");
    scanf("%s", str)
    printf("입력 후 문자열 : %s\n", str);
    
    return 0;
}

 

 

주의할 점이 있다면 

1. 배열의 크기는 최대한 넉넉하게 선언

2. 배열 요소의 개수는 최소한 '문자열 길이 + 1'이어야 함

 

 

 

 

strcpy 함수 : 문자열 복사

 

 

strcpy(str1, "tiger");

// str1는 첫 번째 인수, tiger는 두 번째 인수
// tiger를 str1에 대입하는 개념

 

 

 

char형 배열에 저장된 문자열을 다른 char형 배열에 대입하기

 

int main() {
    char source[] = "Hello, World!";   
    char destination[50];             

    strcpy(destination, source);

    printf("문자열 입력 : %s\n", source);
    printf("입력된 문자열 : %s\n", destination);

    return 0;
}


// 결과

/*
문자열 입력 : Hello, World!
입력된 문자열 : Hello, World!
*/

 

 

 

빈칸을 포함해 문자열을 입력하는 gets 함수

인수로 char형 배열의 배열명을 줌

배열의 크기보다 긴 문자열 입력하지 않도록 주의

 

 

 

 

gets와 짝을 이뤄 문자열을 출력하는 puts 함수

문자열 상수나 char형 배열의 배열명을 주면 문자열을 화면에 출력함

printf("문자열 입력 : "); // 메시지 출력하고 줄 바뀜 x
gets(str); // 출력한 문자열 바로 옆에 입력