[혼공단 11기] 혼공C 5주차 미션

헤스더·2024년 2월 4일
0
post-thumbnail
챌린지혼자 공부하는 C언어
진도Chapter 08
기본미션배열의 개념 정리하고 공유하기
선택미션널 문자의 정의, 용도와 표기법 공유하기




기본 미션

배열의 개념 정리하고 공유하기

8-1. 배열의 선언과 사용

  • 배열(array): 같은 형태의 많은 데이터를 반복문으로 처리하기 위해서 메모리에 연속적으로 저장해놓고 쪼개서 사용하는 방법
  • 배열의 선언: 요소의 자료형에 이름을 붙이고 필요한 요소의 개수를 표시한다. 기본형은 '자료형 배열명[요소 개수];'의 형태이다. (예: int ary[5];) 배열명은 변수명을 짓는 규칙에 따라 적절한 이름을 사용한다.


배열 초기화

배열도 변수와 마찬가지로 최초 할당된 저장 공간에는 쓰레기 값이 저장되어 있다. 따라서, 배열도 원하는 값을 가지기 위해서는 선언과 동시에 초기화가 필요하다. 초기화는 중괄호({})를 사용한다.

1) 기본적인 초기화 방법 (초깃값은 첫번째 요소부터 차례로 초기화된다.)
int ary1[5] = {1, 2, 3, 4, 5};

2) 초깃값 < 배열 요소의 개수 (이때는 왼쪽부터 차례로 초기화하고 남은 배열 요소는 모두 0으로 채운다.)
int ary2[5] = {1, 2, 3};

3) 자동 초기화 기능을 사용하면 배열 요소 개수가 아무리 많아도 모든 요소를 쉽게 0으로 초기화할 수 있다.
int ary[1000] = {0};

4) 배열 요소 개수가 생략됨 (컴파일러는 초깃값 개수만큼 배열 요소 개수를 정하고 저장 공간을 할당함. 즉, ary3은 메모리에 저장 공간이 할당되고 초기화됨)
int ary3 [ ] = {1, 2, 3};

5) double형 배열과 char형 배열을 선언하고 초기화함. double형 배열: 실수, char형 배열: 문자.
double ary4[5] = {1.0, 2.1, 3.2, 4.3, 5.4};
char ary5[5] = {'a', 'p', 'p', 'l', 'e'};



배열과 반목문

배열은 연속된 저장 공간을 할당하고 초기화할 수 있어 같은 유형의 변수가 많이 필요할 때 사용한다. 이렇게 연속된 배열 요소에 반복문을 사용하여 모든 배열 요소에 값을 입력할 수 있다.

for (i = 0; i < 5; i++)
{
	scanf("%d", &score[i]);
}


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

sizeof 연산자: 변수가 메모리에 할당된 크기를 바이트 단위로 반환하는 함수. 배열 요소의 개수는 다음과 같이 구한다.

sizeof(배열명) / sizeof(배열 요소)



char형 배열의 선언과 초기화

char형 배열을 선언할 때에는 정장할 문자열의 길이보다 최소한 하나 이상 크게 배열을 선언하는 것이다. 여분의 공간이 필요한 이유? 널 문자(/0)를 저장하기 위해서!

문자 상수로 하나씩 초기화
char str[80] = {'a', 'p', 'p', 'l', 'e', 'j', 'a', 'm'};
문자열 상수로 한 번에 초기화
char str[80] = "applejam";



8-2. 문자를 저장하는 배열

문자열 대입

char형 배열이 문자열을 저장하는 변수의 역할을 하므로 초기화된 이후에도 얼마든지 새로운 문자열을 저장할 수 있다. 문자열의 길이가 다를 수 있으므로 일반 변수처럼 대입 연산자를 사용하는 것을 불가능하다. -> strcpy 함수 사용

strcpy(저장될 배열명, 저장할 문자열)



문자열 전용 입출력 함수: gets, puts

  • 빈칸을 포함하여 문자열을 입력하는 gets 함수
    gets(char형 배열명)
    gets 함수는 문자열 입력 중간에 빈칸이나 탭 문자를 사용할 수 있으며, Enter 키를 누르기 전까지 전체를 하나의 문자열로 배열에 저장한다. 마지막에 널 문자를 붙여서 문자열의 끝을 표시한다. gets 함수의 사용 시 주의할 점! 입력할 때 항상 배열의 크기를 고려한다.

  • gets와 짝을 이뤄 문자열을 출력하는 puts 함수
    puts 함수는 문자열 상수나 char 배열의 배열명을 주면 문자열을 화면에 출력한다. printf 함수의 문자열 출력 기능과 같다. 문자열을 출력한 후에 자동으로 줄을 바꾸는 차이가 있다.


선택 미션

널 문자의 정의, 용도와 표기법 공유하기

널 문자의 정의

char형 배열에 저장된 0을 특별히 '널 문자(null character)'라고 부른다. 모든 문자는 아스키 코드 값으로 저장되므로 결국 널 문자는 아스키 코드 값이 0인 문자를 말하며 문자 상수로는 /0으로 표현된다.

널 문자의 용도

널 문자는 문자열의 끝을 표시한다.




0개의 댓글