C언어 배열
title: “C언어 배열” categories:
-
C
#C언어 배열 : 네이버 블로그
배열은 같은 종류의 데이터를 효율적으로 관리하고 처리 할 수 있는 역할을 한다.
a라은 배열이 있다면
a[0] a[1] a[2] 식으로 배열이 형성된다
배열 선언은
자료형 배열이름 배열크기 이다
int array [3]
위 배열은 array[0] array [1] array [2] 를 갖는다. 0부터 시작함에 유의하라
#include
#define students 5 //학생의 수
int main() {
int scores[students]; //scores 배열 선언
int average, sum = 0;
for (int i = 0; i < students; i++)
{
puts("학생들의 성적을 입력하세요");
scanf("%d", &scores[i]); //scores[i]에 입력
}
for (int i = 0; i < students; i++)
sum += scores[i]; //scores[i]의 성적을 모두 더한다
average = sum / students;
printf("성적 합계 = %d\n", sum);
printf("성적 평균 = %d\n", average);
}
위 예제는 scores [5]를 선언한 후 반복문으로 배열을 입력받은 후 모두 더하고 있다
아래는 배열의 초기화 예제이다
#include
int main() {
int scores[5] = { 10,12,13 };
for (int i = 0; i < 5; i++)
printf("scores[%d]=%d\n", i, scores[i]);
}
int scores [5]={10,12,13}
{} 중괄호 안의 숫자 순서대로 배열의 0번째부터 초기화된다. 즉 위의 초기화로
scores[0]=10
scores[1]=12
scores[2]=13
scores[3]=0
scores[4]=0
0부터 시작함에 유의하라, 초기화에 없는 배열은 0으로 초기화된다.
#include
int main() {
int a[5] = { 0 }; //배열 0부터 4까지 0으로 초기화
int b[5] = { 0,0,1 }; //배열 0 부터 0 0 1로 초기화 후 나머지는 0
for (int i = 0; i < 5; i++)
{
printf("배열 a[%d] 과 b[%d]는 ", i, i);
if (a[i] == b[i])
puts("같습니다");
else
puts("다릅니다");
}
printf("전체 배열은 ");
if (a == b) //a와 b전체 배열 비교
puts("같습니다");
else
puts("다릅니다");
}
#include
#include
#define SIZE 6
int main() {
srand(time(NULL));
int freq[SIZE] = { 0 }; //freq[6]을 초기화
for (int i = 0; i < 10000; i++)
++freq[rand() % 6]; //freq[] 0부터 6까지의 랜덤 배열에 1을 추가한다
puts("==============");
puts("면 빈도");
puts("==============");
for (int i = 0; i < SIZE; i++)
printf("%3d %3d \n", i + 1, freq[i]);
}
아래 소스는 함수 내의 배열을 변경하면 원본 함수가 변경되는 함수이다.
사실 함수로 배열을 입력받으면 배열은 주소로 입력받게 되고 변경된 배열이 곧 원본 배열이 된다.
#include
#define SIZE 7
void modify\_array(int a[], int size);
void print\_array(int a[], int size);
int main() {
const int list[SIZE] = { 1,2,3,4,5,6,7 };
print\_array(list, SIZE); //배열 출력
modify\_array(list, SIZE); //배열 수정
print\_array(list, SIZE); //배열 출력
for (int i = 0; i < 7; i++) //배열 출력
printf("%d", list[i]);
}
void modify\_array(int a[], int size) {
for (int i = 0; i < size; i++)
{
++a[i];
}
}
void print\_array(int a[], int size) {
for (int i = 0; i < size; i++)
{
printf("%d", a[i]);
}
puts("");
}
배열은 함수로 입력 받을때 주소로 입력받기 때문에 배열이 변경되면 원본 배열이 변경된다
나중에 배울 포인터에서 이 부분은 한번 더 설명하겠다