CHANGEL
SOLID BASICS
CHANGEL

공지사항

  • DEV.CHANGEL PROFILE
  • SOLID BASIC (289)
    • 공부 STUDY (115)
      • JAVA (57)
      • C | C++ (34)
      • CS (11)
      • MySQL (2)
      • ALGORITHM (1)
      • HTML (2)
      • CSS (2)
      • JS (2)
      • CODING (0)
      • MINI PROJECT (3)
    • 스프링 SPRING (21)
      • [SPRING] 김영한 스프링 입문 (11)
      • [SPRING] 남궁성 스프링의 정석 (1)
      • [SPRING] 스프링 핵심원리 (9)
    • 전공 수업 CS (65)
      • Computer Network (13)
      • algorithms (21)
      • Computer Architecture (7)
      • Software Engineering (4)
      • Data Structure (2)
      • DataBase (1)
      • Digital Engineering (14)
      • Discrete Mathematics (3)
      • Introduction to programming (0)
      • Mobile Software (0)
      • Intelligence and Informatio.. (0)
    • 대외활동 (35)
      • 신한은행 대학생 홍보대사 34기 (8)
      • SKT T프렌즈 5기 (13)
      • SK DEVOTION YOUNG 1기 (9)
      • 성균관 대학교 공학교육혁신센터 수강 (3)
      • 수상 기록 (1)
    • 솝트 33기 안드로이드 (7)
      • [솝트 33기] 회고록 (0)
      • [솝트 33기] 안드로이드 왕초보 스터디 (2)
      • [솝트 33기] 코틀린 스터디 (0)
      • [솝트 33기] Git을 털어보자 깃털 스터디 (4)
    • 멋쟁이사자처럼 11기 (6)
      • 멋사 회고록 (4)
      • 백엔드 세션 (1)
      • 기획 세션 (1)
      • 연합해커톤 운영단 (기획팀) (0)
    • 백준 BAEKJOON (16)
    • 독서 BOOK (10)
    • 자격증 CERTIFICATE (1)
    • 준비 서류 및 회고록 MEMOIR (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

최근 댓글

인기 글

CHANGEL

SOLID BASICS

[ C ] 배열 | 배열의 선언과 사용
공부 STUDY/C | C++

[ C ] 배열 | 배열의 선언과 사용

2023. 1. 28. 09:54

동일한 자료형을 저장할 공간이 많이 필요하다면 일일이 변수를 선언하는 것은 쉽지 않다.

이때 사용하는 것이 '배열'이다.

 

 

int kor, math, eng, sosial, science;

//다섯 가지 변수가 있다고 생각해보자.

다섯 가지 과목의 점수를 저장하기 위해 변수 다섯 개를 선언했다고 가정하자. 

 

따로따로 선언했으므로, 점수를 일일히 변수에 집어넣어줘야한다. 

변수의 이름이 별도로 존재하니까... < 상당히 귀찮다 ㅋ

그래서 사용하는 것이 바로 '배열'!

 

같은 형태의 많은 데이터를 반복문으로 처리할 수 있도록 메모리에 연속적으로 저장해놓고, 이를 쪼개어 사용한다면 매우 효율적인 데이터 처리가 가능할 것이다. 

 

배열을 선언해보자

 

배열 역시 선언을 통해 공간을 확보한다. 하나의 이름으로 한꺼번에 확보하면 된다.

int array[5];

//자료형 배열명 [요소 개수];

위는 배열 선언문이다. 배열은 연속적으로 공간이 할당되며 배열명이 전체 공간의 이름이된다. 

int 형 변수의 크기는 알다시피 4 바이트이다 그러므로 다섯 개를 연속적으로 할당하면 총 20 바이트가 이 배열의 크기이다.

나누어진 배열의 조각들을 배열 요소라고 한다. 

각 배열 요소들은 이렇게 쓸 수 있다.

 

-> array[0], array[1] array[2] ... array[4]

 

대괄호 안의 숫자는 배열에서 몇 번째 위치에 있는지를 나타낸다. 이 값을 '첨자'라고한다.  첨자는 0부터 시작하므로 첨자는 '최대 배열 요소 개수' - 1까지만 사용함! 위 예시에서는 배열 요소의 개수가 다섯 개 이므로 첨자를 0부터 4까지만 사용한다. 

 

arrray[0] = 10; //배열의 값 대입

scanf("%d", &array[1]); //배열의 값을 키보드로 입력받아 대입

 

이렇게 배열 요소의 값을 대입할 수 있다. 배열 요소에 값을 저장하지 않는다면 쓰레기 값이 저장되어있음!

 

배열을 최초로 할당한 저장 공간에는 쓰레기 값이 저장되어있다. 그렇기에 배열도 원하는 값을 가지려면 선언과 동시에 초기화해야한다. 

배열은 중괄호로 묶어서 초기화한다. 

 

int array1[5]  = { 1,2,3,4,5};

 

만일 초기값이 배열 요소의 개수보다 작다면 남은 배열 요소를 0으로 채운다, 

 

배열 요소의 개수가 생략된 형태라면 초깃값의 개수만큼 배열 요소의 개수를 정하고 저장 공간을 할당한다.

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

 

배열의 초기화는 선언 시 최초 한 번만 가능하며 그 이후에는 일일이 값을 대입해야한다. 초기화 때처럼 중괄호를 사용하여 대입 연산으로 한 번에 값을 바꾸는 것은 불가능하다.

 

배열을 사용하면 반목문을 사용하며 매우 편리하게 데이터를 처리할 수 있다! 예를 들어 총합을 구한다든지, 평균을 구한다든지말이다.

 

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

 

배열 요소의 전체 개수는 위와 같이 sizeof 연산자를 이용해 아주 쉽게 구할 수 있다.

저작자표시 (새창열림)

'공부 STUDY > C | C++' 카테고리의 다른 글

[ C ] 포인터란? 메모리 주소 | 포인터 연산자( &, *)  (0) 2023.01.28
[ C ] 문자를 저장하는 배열 | char 형 배열 | 문자열 대입 방법 | strcpy(), gets(), puts()  (0) 2023.01.28
[ C ] 겨울방학동안 C 포인터/ 구조체/ 동적메모리 개념 확실하게 익히기 | 자료구조 학습전 갖추어야할 베이스지식  (0) 2023.01.28
[C] fgetc() 함수의 반환값은 int  (0) 2022.12.03
[C] 동적 메모리 | memset() 함수  (0) 2022.11.29
    '공부 STUDY/C | C++' 카테고리의 다른 글
    • [ C ] 포인터란? 메모리 주소 | 포인터 연산자( &, *)
    • [ C ] 문자를 저장하는 배열 | char 형 배열 | 문자열 대입 방법 | strcpy(), gets(), puts()
    • [ C ] 겨울방학동안 C 포인터/ 구조체/ 동적메모리 개념 확실하게 익히기 | 자료구조 학습전 갖추어야할 베이스지식
    • [C] fgetc() 함수의 반환값은 int
    CHANGEL
    CHANGEL
    NOT GIVING UP | SOLID BASICS

    티스토리툴바