[혼공학습단] 혼자 공부하는 C언어 5주차

CE의 velog·2025년 2월 23일
0

[chapter 08 배열]

08-1 배열의 선언과 사용

  • 배열의 선언
    -배열은 선언을 통해 저장공간 확보, 하나씩 선언하지 않고 하나의 이름으로 변수를 여러 개 선언
    -선언 방법: 요소의 자료형에 이름을 붙이고 필요한 선언의 개수를 표시

    int ary[5];
    자료형 배열명 요소개수
  • 배열의 사용
    -배열 요소는 배열의 나누어진 조각을 의미, 배열명에 첨자를 붙여 표현
    -선언의 대괄호: 배열 요소의 전체 개수, 사용의 대괄호: 배열에서 각 요소의 위치

  • 배열 초기화
    -배열은 원하는 값을 가지기 위해 선언과 동시에 {}로 묶어서 초기화
    -배열의 초기화는 선언 시 최초 한 번만 가능
    -초기화 방법

    1. 기본 초기화
    int ary[5] = {1,2,3,4,5};
    => 첫 번째 요소부터 차례로 초기화
    
    2. 초기값이 배열 요소의 개수보다 적은 경우
    int ary[5] = {1,2,3};
    => 왼쪽부터 차례로 초기화하고 남은 배열 요소는 모두 0
    
    3. 자동 초기화 기능
    int ary[1000] = {0};
    => 배열 요소 개수 상관없이 쉽게 0으로 초기화
    
    4. 배열 요소 개수 생략
    int ary[] = {1,2,3};
    => 초기값 개수만큼 배열 요소 개수를 정하고 저장 공간 할당
    
    5. double형과 cha형 배열을 선언하고 초기화
    double ary[5] = {1.0, 2.1, 3.2, 4.3, 5.4};
    char ary[5] = {'a', 'p', 'p', 'l', 'e'};
  • 배열과 반복문
    -연속된 배열 요소를 일일이 변수처럼 하나씩 떼어서 사용 => 배열 활용 X
    -배열과 반복문의 활용으로 많은 데이터를 쉽게 대응

  • sizeof 연산자를 활용한 배열 처리
    -배열 요소의 개수를 계산해 반복문에 사용

    배열 요소의 개수 = sizeof(배열명) / sizeof(배열 요소)
    예) count = sizeof(score) / sizeof(score[0]);

    08-2 문자를 저장하는 배열

  • char형 배열의 선언과 초기화
    -저장할 문자열의 길이보다 최소한 하나 이상 크게 배열 => 널문자를 저장하기 위해서
    -중괄호 없이 문자열 상수로 초기화

    char str[80] = "applejam";
  • 널문자 (\0)
    -char형 배열에 저장된 0
    -아스키 코드 값이 0인 문자
    -문자의 끝을 표시하여 함수가 문자열을 정확히 출력
    -주의

    1. 초기화 하지 않은 상태에서 배열 요소에 문자를 대입한다면 반드시   마지막 문자 다음에 널문자를 대입
     2. 배열의 크기는 최대한 넉넉하게
     3. 배열 요소의 개수는 최소한 문자열 길이 + 1
    
  • 문자열 대입
    strcpy 함수: char형 배열에 새로운 문자열을 저장하는 함수

    strcpy(저장될 배열명, 저장할 문자열)
     첫 번째 인수는 충분히 커야 하고, 문자열 상수를 사용 불가
     두 번째 인수는 문자열 상수 뿐만 아니라 배열명도 사용 가능
     올바른 예) strcpy(str1, "tiger"); 
               strcpy(str2, str1);
     잘못된 예) strcpy("lion", "tiger");
    
  • 문자열 전용 입출력 함수: gets, puts
    gets 함수는 빈칸을 포함해 한 줄 전체를 문자열로 입력, 짝을 이루는 문 자열 출력 함수 puts

    gets(char형 배열명)
    :엔터 누르기 전까지를 하나의 문자열로 배열에 저장 (빈칸이나 탭 문자 가능)/ 널문자를 붙여 문자열의 끝을 표시/ 배열의 크기 고려
    puts 함수
    :문자열 출력 함수 (문자열 출력 후 자동으로 줄을 바꾸는 기능 O)
  • 널문자에 대해 추가 코딩

    널문자가 없는 문자열로 OK 이후로 쓰레기 값이 출력됨
    => 08행 이후 printf 전에 str[2] = '\0';을 넣어서 문자열의 끝을 알리는 널문자 추가
    #include <stdio.h>
    
    int main(void)
    {
        char str[5];
    
        str[0] = 'O';
        str[1] = 'K';
        printf("%s\n", str);
    
        return 0;
    }
  • 기본숙제 및 추가숙제: 블로그 내용

0개의 댓글

관련 채용 정보