JUST GO
[C] 배열 본문
배열
- 같은 데이터형의 변수를 메모리에 연속적으로 할당하고 같은 이름으로 사용하는 기능
- 배열의 원소(element)
- 배열 안에 들어가는 변수 하나하나
- 개별적인 변수인 것처럼 사용
- 인덱스(index)
- 배열의 각 원소를 구분하기 위한 번호
- 항상 0부터 시작한다.
- 배열의 모든 원소는 항상 연속된 메모리에 할당된다.

배열의 선언

배열의 크기
- 배열의 크기는 반드시 0보다 큰 정수형 상수로 지정해야 한다.

- 배열의 크기를 지정할 때 매크로 상수를 사용할 수 있다.
- const 변수는 변수이므로 배열의 크기를 지정할 때 사용할 수 없다.
- 배열 이름으로부터 배열의 크기(원소의 개수)를 구할 수 있다.
배열의 초기화
- { } 안에 배열 원소의 초기값을 콤마(,)로 나열한다.
- 배열의 0번째 원소부터 배열의 초기값이 나열된 순서대로 초기화한다.
- 초기값이 부족하면 나머지 원소는 0으로 초기화한다.
- 초기값을 원소의 개수보다 많으면 컴파일 에러가 발생한다.
- { } 안을 비워 두면 컴파일 에러가 발생한다.
- 초기값을 지정하지 않고 배열의 크기를 생략하면 컴파일 에러가 발생한다.
- 배열의 초기값을 지정하는 경우에는 배열의 크기를 생략할 수 있다.
가장 기본적인 배열의 초기화
#include <stdio.h>
int main()
{
int arr[5] = { 1, 2, 3, 4, 5 };
int i;
printf("arr = ");
for (i = 0; i < 5; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
배열의 크기보다 초기값을 적게 지정하는 경우
//#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int amount[5] = { 1, 1, 5 }; // 1, 1, 5, 0, 0으로 초기화
int price[5] = { 0 }; // 배열 전체를 0으로 초기
int i;
printf("amount = ");
for (i = 0; i < 5; i++)
printf("%d ", amount[i]);
printf("\n");
printf("price = ");
for (i = 0; i < 5; i++)
printf("%d ", price[i]);
printf("\n");
return 0;
}
배열 원소의 사용
- 배열의 각 원소에 접근하려면 인덱스 또는 첨자를 이용한다.
- 배열은 주로 for문과 함께 사용된다.
- 배열의 인덱스에는 변수나 변수를 포함한 수식을 사용할 수 있다.
배열의 원소가 변수로서 사용되는 경우
#define ARR_SIZE 5
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int add(int a, int b) { return a + b; }
int main(void)
{
int arr[ARR_SIZE] = { 0 }; // 배열 전체를 0으로 초기화
int i;
arr[0] = 5;
arr[1] = arr[0] + 10; // 배열의 원소를 수식에 이용
arr[2] = add(arr[0], arr[1]); // 함수의 인자로 전달
printf("정수를 2개 입력하세요: ");
scanf("%d %d", &arr[3], &arr[4]); // 배열의 원소로 입력
for (i = 0; i < ARR_SIZE; i++)
printf("%d ", arr[i]);
printf("\n");
}
'C > 학습내용' 카테고리의 다른 글
[C] swap 함수 (0) | 2022.10.07 |
---|---|
[C] 포인터(2) (0) | 2022.10.06 |
[C] 함수 (0) | 2022.10.06 |
[C] 반복문(2) (1) | 2022.10.05 |
[C] 반복문 (1) | 2022.10.05 |