티스토리 뷰
배열
- 동일한 타입의 데이터가 여러개 저장되어 있는
데이터 저장 장소
- 배열안에 들어있는 각각의 데이터들은 정수로 되어
있는 번호(첨자)에 의하여 접근
- 배열을 이용하면 여러개의 값을 하나의 이름을
처리할 수 있다.
배열의 특징
- 나란히 메모리 공간 할당
- 순차적으로 접근 가능
인덱스: 배열원소의 번호
배열 선언
int grade [10];
- 자료형: 배열 원소들이 int형이라는 것을 의미
- 배열 이름: 배열을 사용할 때 사용하는이름 grade
- 배열 크기: 배열 원소의 개수가 10개
- 인덱스(배열번호)는 항상 0부터 시작
예) int grade[10];
--> 1번 인덱스 == grade[0]
예) int score[60]; --> 60개의 int형 값을 가지는 배열
float cost[12]; --> 12개의 float형 값을 가지는 배열
char src[10],dst[10]; --> 2개의 문자형 배열을 동시에 선언
int index,days[10]; -->일반 변수와 배열을 동시에 선언
잘못된 인덱스 문제
- 인덱스가 배열의 크기를 벗어나게 되면 프로그램에
치명적인 오류를 발생시킴
int grade[5];
grade[5] = 60 ---> 치명적 오류
배열의 초기화
int grade[5] = {10,20,30,40,50};
각 인덱스마다 입력해주는것보다 위처럼 한꺼번에
초기화 시켜주는게 간편하다.
- 배열의 크기가 주어지지 않으면 자동적으로 초기값의
개수만큼이 배열의 크기로 잡힌다.
int grade[] = {10,20,30,40,50};
배열의 복사
int grade[SIZE];
int score[SIZE];
score = grade --> 잘못된 방법 / 컴파일 오류
int i;
int a[SIZE] = {1,2,3,4};
int b[SIZE];
for(i=0; i<SIZE; i++){ -->올바른 방법
(원소를 일일이 복사한다.)
b[i] = a[i];
}
배열의 비교
int i;
int a[SIZE] = {1,2,3,4,5};
int b[SIZE] = {1,2,3,4,5};
if(a==b){
printf("잘못된 결과입니다.\n");
}
else{
printf("잘못된 결과입니다.\n");
}
--> 올바르지 않은 비교
=========================================
for(i=0; i<SIZE; i++){
if(a[i] != b[i]){
printf("a[]와 b[]는 같지 않습니다.\n");
return 0;
}
}
printf("a[]와 b[]는 같습니다.\n");
--> 올바른 배열 비교
'C언어' 카테고리의 다른 글
12day.c 난수 함수, 지역, 전역 변수 정리 (0) | 2017.04.03 |
---|---|
11day.c 함수정리 (0) | 2017.04.03 |
8,9day.c 반복문 정리 (0) | 2017.03.11 |
7day.c switch문 정리 (0) | 2017.03.09 |
6day.c if문 정리 (0) | 2017.03.09 |