C언어 배열 1초팁
- 꿀 정보
- 2020. 4. 19. 01:24
배열은 같은 데이터형의 변수를 메모리에 연속적으로 할당하고 같은 이름으로 사용하는 방법을 제공한다.
배열을 선언하는 기본적인 형식은 다음과 같다.
데이터형 배열명 [크기]; - 형식
int num [5];
float ave [10];
short arr [100];
char str [80];
double x [MAX];
배열을 선언하려면 배열의 데이터형과 배열명, 배열의 크기가 필요하다.
이게 배열의 기본적인 형식이다.
배열의 크기는 0보다 큰 정수형으로 지정해야한다.
다음과 같은 상황은 모두 컴파일 에러가 된다.
int arr1[ ] <-----------배열의 크기가 없으므로 컴파일 에러
int arr2[0] <----------- 배열의 크기가 0이므로 컴파일 에러
int size = 5;
int arr3[size]; <---------- 배열의 크기가 변수이므로 컴파일 에러
int arr4[size + 10] <----------- 배열의 크기가 변수를 포함한 수식이므로 컴파일 에러
배열의 사용 예
원래대로라면 이렇게 arr[0~4] 까지 입력해야합니다.
그런데 배열을 이용하면 아래 이미지와 같이 간단히 할수 있습니다.
int arr[5] = {10,20,30,40,50}; 이 한줄이면 위에 여러줄쓸거를 생략하고 간단하게 나타낼수 있다.
여기까지는 이해하기 쉽다. 하지만 응용하면서 배열을 이용하면 점점 머리가 복잡해진다.
다차원 배열
다차원 배열은 원소 접근시 두 개 이상의 인덱스를 사용하는 배열이라고 한다.
예를 들어 학생 5명의 2과목 점수를 저장해야 한다고 생각해보자. 한 학생마다 2과목의점수를 저장해야하고,
학생이 5명이므로 모두 10개의 점수를 저장해야한다. 두 과목의 점수를 저장하려면 크기가 2인 int 배열을 선언해야한다.
이 int 배열이 다시 학생수 10명만큼 필요하므로 2x5의 배열이 필요하게 된다. 이럴때 다차원 배열을 이용하면 편리하다.
다차원 배열의 기본형식을 알아보자
데이터형 배열명 [크기1] [크기2];
이차원 배열을 선언하려면 배열의 크기를 2개 사용해야 한다.
예를 들어 int data[2][3]; 은 int형을 2X3개, 총 6개의 원소를 갖는다.
일차원 배열은 원소에 접근할 때 인덱스를 하나만 사용하고, 이차원 배열은 두 개 사용한다.
인덱스를 여러 개 사용할 때는 가장 오른쪽 부터 인덱스가 증가되고, 가장오른쪽 인덱스가 다 증가되면
다시 그 왼쪽에 있는 인덱스가 증가된다.
short data [ 2 ][ 3 ] ;
data [ 0 ] [ 0 ] = 1;
data [ 0 ] [ 1 ] = 2;
data [ 0 ] [ 2 ] = 3;
data [ 1 ] [ 0 ] = 4;
data [ 1 ] [ 1 ] = 5;
data [ 1 ] [ 2 ] = 1;
이렇게 3이니깐 오른쪽부터 2까지 채워지고 왼쪽이 채워진다.
위 개념을
이차원배열의 제2크기 개수만큼씩 {}로 묶어서
short data[2][3] = { {1,2,3}, {4,5,6} };
제2크기 개수만큼 {}로 묶지않고. 일차원배열처럼 초기값만 나열할수있다.
short data[2][3] = {1,2,3,4,5,6};
여기서 주의할점은
int a[ ][2] = {1, 2, 3, 4, 5, 6}; <-------int a[3][2];로 할당된다
int b[3][ ] = {1, 2, 3, 4, 5, 6}; <-------컴파일 에러
두번째꺼는 몇묶음인지 알수없기 때문에 컴파일 에러가 뜬다.
여기까지 배열의 기본이라고 할수있는 배열을 기본형식 들을 알아보았다.
이것을 활용하여 다양한 코딩을 할수있게 연습하면좋을것같다.
'꿀 정보' 카테고리의 다른 글
컴퓨터활용능력 1급 필기 합격 노하우,꿀팁 (0) | 2020.04.20 |
---|---|
C언어 문자열배열 (0) | 2020.04.19 |
C언어 배열 1초팁 (0) | 2020.04.19 |
네트워크 접속장치 7가지 1초팁 (0) | 2020.04.19 |
엑셀 OFFSET 1초팁 (0) | 2020.04.19 |
한경테셋 시장가격의 결정방법 (0) | 2020.04.18 |