안녕하세요 오늘은 c언어에서 배열에 대한 개념을 공부해 보겠습니다. 이 부분도 내용이 매우 길어서, 몇개로 나눠서 공부를 해보도록 하겠습니다!
배열(Array)은 왜 필요할까요? 일반적인 배열의 개념은 여러 서로다른 카테고리가 같은 물건(값)을 보관하기 위한 상자라고 보통 생각합니다(제가 그렇게 생각합니다 맞다고.... 맞아!!!!)
책에서 나온 예시를 한번 들어보겠습니다.
예시 - Psi 는 친구로 부터 프로그램을 하나 짜 달라는 요청을 받았습니다. 친절한 Psi 는 그친구의 요청을 흔퀘히 승낙했죠. 그런데, 그 친구가 요청한 프로그램은 그다지 평범한 프로그램이 아니였습니다. 그 친구의 반에 30 명의 학생들이 있는데 각 학생들의 성적들을 입력받아서 평균 보다 낮은 사람들의 번호 옆에 ’불합격’, 평균 이상의 사람들에게 ’합격’ 이라는 메세지 까지 출력하는 프로그램을 말입니다.
그래서 Psi 는 생각하였습니다.
’30 명의 학생들의 점수를 입력 받아서 평균 까지는 구할 수 있겠는데 말야. 각 학생의 점수들을 보관하기 위한 변수들이 필요하단 말이야. 학생이 4 명 이라면 편하겠지만 30 명이라면.. a1, a2, a3, a4, a5, ..... a30 까지 각 변수의 값들을 언제 다 입력 받지? 젠장할! 이거 완전히 ’캐’ 노가다 아닌가.
아무튼, 프로그래밍을 하다가 위와 같이 여러 개의 값을 동시해 보관할 필요성이 생기게 되었습니다.
이전의 경우 여러개의 값을 보관할 경우에, 그 개수 만큼의 변수가 필요했었지요. 하지만 위 경우 처럼 이용해야 할 변수의 개수가 매우 많아지게 되면 어떨 까요? - 예시
왜 배열이란 개념이 필요한지 조금은 이해되셨나요? 즉, 같은 데이터타입의 여러 변수들의 집합이라고 보시면 됩니다.
배열 변수를 정의할 때는 보시는거처럼, '배열 타입 배열 이름 [원소 개수];' 의 형태로 정의를 합니다.
위에 예시를 보면, int 형의 10개의 원소를 가지는 배열 arr이다라고 생각하시면 됩니다. 즉 int형 변수 10개를 보관할 수 있는 상자가 생긴것이죠. 데이터 타입만 바꾸면 어떤 타입이든 저장이 가능합니다.
또한 배열의 원소의 접근을 하려면 arr[n-1] 즉, 원소의(번째수 -1)을 써주면 됩니다. 위에 printf문을 보시면 그 예시를 확인할 수 있습니다!
만일 숫자를 잘못적어서, 존재하지 않는 즉 여기서는 arr[10]을 입력하게 된다면 아래와 같은 에러문구를 보게될 것 이니까 숫자는 틀리면 안됩니다!
자 오늘은 배열의 기본적인 개념과 사용법을 알아보았습니다. 처음 말씀드린대로 양이 상당해서, 여러번 나누어서 공부를 해보도록 하겠습니다!
오늘도 즐거운 하루 되십쇼!
'C language(c언어)' 카테고리의 다른 글
배열(Array) - 2 메모리에서의 배열 (2) | 2024.10.02 |
---|---|
형 변환(타입 캐스팅) IEEE754 -2 (돌아왔구나 c식아) (2) | 2024.09.30 |
형 변환(타입 캐스팅) -1 (0) | 2024.02.01 |
Switch문 (2) | 2024.01.29 |
Loop 반복문 (while문) (do-while문) (0) | 2023.11.03 |