반응형
8장: 배열 (Arrays)
8.1 배열의 개념
- 배열(array): 동일한 데이터 타입의 값들을 연속된 메모리 공간에 저장하는 자료구조.
- 각 요소는 인덱스를 통해 접근하며, 인덱스는 0부터 시작.
배열 선언
데이터타입 배열이름[크기];
예제
int numbers[5]; // 5개의 정수 저장 공간
8.2 배열 초기화
배열을 선언과 동시에 값을 초기화할 수 있습니다.
초기화 방법
int numbers[5] = {1, 2, 3, 4, 5}; // 크기를 명시
int numbers[] = {1, 2, 3, 4, 5}; // 크기를 생략 가능
int numbers[5] = {1, 2}; // 초기화하지 않은 요소는 0으로 설정
예제
#include <stdio.h>
int main(void) {
int numbers[5] = {10, 20, 30, 40, 50};
printf("첫 번째 요소: %d\n", numbers[0]);
printf("세 번째 요소: %d\n", numbers[2]);
return 0;
}
출력 결과:
첫 번째 요소: 10
세 번째 요소: 30
8.3 배열 요소 접근
배열 요소는 인덱스를 사용해 접근합니다.
기본 사용법
배열이름[인덱스]
예제: 배열 요소 수정
#include <stdio.h>
int main(void) {
int numbers[5] = {10, 20, 30, 40, 50};
numbers[2] = 100; // 세 번째 요소를 100으로 수정
printf("수정된 세 번째 요소: %d\n", numbers[2]);
return 0;
}
출력 결과:
수정된 세 번째 요소: 100
8.4 배열과 반복문
배열은 반복문과 함께 사용하는 것이 일반적입니다.
예제: 배열 출력
#include <stdio.h>
int main(void) {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("numbers[%d] = %d\n", i, numbers[i]);
}
return 0;
}
출력 결과:
numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5
8.5 다차원 배열
2차원 배열 선언
데이터타입 배열이름[행][열];
2차원 배열 초기화
int matrix[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
요소 접근
- 행과 열의 인덱스를 사용합니다:
matrix[0][1] // 첫 번째 행, 두 번째 열
예제: 2차원 배열 출력
#include <stdio.h>
int main(void) {
int matrix[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]);
}
}
return 0;
}
출력 결과:
matrix[0][0] = 1
matrix[0][1] = 2
matrix[0][2] = 3
matrix[1][0] = 4
matrix[1][1] = 5
matrix[1][2] = 6
8.6 문자열과 배열
C 언어에서 문자열은 문자 배열로 표현됩니다.
문자열 선언과 초기화
char str[] = "Hello";
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // '\0'은 문자열의 끝을 나타냄
문자열 출력
printf를 사용해 문자열을 출력할 수 있습니다:
printf("%s", str);
예제: 문자열 출력
#include <stdio.h>
int main(void) {
char str[] = "Hello, C!";
printf("문자열: %s\n", str);
return 0;
}
출력 결과:
문자열: Hello, C!
8.7 배열과 함수
배열은 함수의 인수로 전달될 때 포인터로 전달됩니다.
배열을 함수에 전달
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main(void) {
int numbers[5] = {1, 2, 3, 4, 5};
printArray(numbers, 5); // 배열과 크기를 전달
return 0;
}
출력 결과:
1 2 3 4 5
8.8 심화 예제
1. 최대값 찾기
#include <stdio.h>
int main(void) {
int numbers[5] = {10, 20, 5, 40, 30};
int max = numbers[0];
for (int i = 1; i < 5; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
printf("최대값: %d\n", max);
return 0;
}
2. 2차원 배열의 합 계산
#include <stdio.h>
int main(void) {
int matrix[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
int sum = 0;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
sum += matrix[i][j];
}
}
printf("배열 요소의 합: %d\n", sum);
return 0;
}
출력 결과:
배열 요소의 합: 21
반응형
'Computer Science > C 언어' 카테고리의 다른 글
[C 10] 프로그램 조직화 (Program Organization) (1) | 2024.12.08 |
---|---|
[C #9] 함수 (Functions) (3) | 2024.12.07 |
[C #7] 기본 데이터 타입 (Basic Types) (1) | 2024.12.05 |
[C #6] 반복문 (Loops) (0) | 2024.12.04 |
[C#5] 조건문 (Selection Statements) (1) | 2024.12.03 |