팔만코딩경
/
Library DB
/
C언어 기초문법(?)
/
C언어 8강. 배열 Array
Search
Share
C언어 8강. 배열 Array
Gallery view
Search
LIST
배열을 사용하는 이유?
•
변수의 장점
선언만으로 쉽게 사용할 수 있다
•
변수의 단점
여러 개의 값을 저장하려면 다수의 변수가 필요
100 개의 값 저장? → 100개의 변수 선언
배열이란?
•
배열이란?
데이터형과 변수명이 같은 변수의
집합
•
배열의 속성
◦
같은 데이터형과 변수명
◦
배열 원소의 개수
◦
연속적인 메모리 할당
•
배열 원소를 구분하는 방법
인덱스 index → 값
•
인덱스의 범위?
0 ~ N - 1 ( N은 배열 원소의 총 개수)
인덱스는 id처럼 사용한다고 생각하면 쉽다.
•
배열이 필요한 이유?
◦
메모리를 편리하게 다루기 위해
ex) 면, 행, 열
◦
연속적인 고정 메모리 할당
◦
같은 데이터 형을 다루기 위해
◦
문자열 저장
개요
배열과 반복문
•
반복문을 이용한 초기화
int
i
;
for
(
i
=
0
;
i
<
3
;
i
++
)
{
array
[
i
]
=
i
+
1
;
C
복사
•
함수를 이용한 초기화
int
array
[
3
]
;
memset
(
array
,
0
,
sizeof
(
array
)
)
;
->
0
,
-
1
로만 초기화
C
복사
배열 원소의 개수
•
배열의 메모리 할당 크기
sizeof(array)
•
배열의 요소 개수?
sizeof(array) / sizeof(데이터형)
예)
int array[3];
sizeof(array) / sizeof(int)
= 12 / 4;
•
반복문을 활용한 배열 역순 출력
for
(
int
i
=
sizeof
(
array
)
/
sizeof
(
int
)
-
1
;
i
>=
0
;
--
i
)
C
복사
배열을 함수로 전달하는 형식
배열
이차원 배열의 개념
•
이차원 배열 메모리를 다루기 위한 개념
행 > 열
열 : 배열 원소
행 : 배월 원소의 집합
•
개념
◦
이차원 배열은
일차원 배열
이다.
이차원 배열
•
형식
◦
이차원 배열
데이터형 배열명[행의 개수][열의 개수]
int array[3][7];
•
이차원 배열 선언과 초기화
int array[2][3] = {{1, 2, 3}, {4, 5, 6}}; 이 표현을 많이 쓴다.
int array[][3] = {{1, 2, 3}, {4, 5, 6}}; 반드시 행에 대한 부분만 생략을 할 수 있다.
int array[2][3] = {1, 2, 3, 4, 5, 6};
int array[2][3] = {0, };
•
이차원 배열의 사용
int array[2][3] ={1, 2, 3, 4, 5, 6};
int nCount = array[1][2];
이차원 배열
다차원 배열의 개념
•
다차원 배열 메모리를 다루기 위한 개념
면 > 행 > 열
열 : 배열의 원소
행 : 배열 원소의 집합
면 : 행의 집합
•
개념
◦
다차원 배열은
일차원 배열
이다.
•
형식
데이터형 배열명[
면
의 개수][
행
의 개수][
열
의 개수]
int array[2][3][7];
다차원 배열의 선언과 초기화
•
다차원 배열 선언고하 동시에 초기화
int array[2][2][2] = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };
int array[][2][2] = { {1, 2, 3, 4}, {5, 6, 7, 8} }; // 면의 인덱스는 생략 가능하다.
int array[][2][2] = {1, 2, 3, 4, 5, 6, 7, 8};
반복문을 이용한 초기화
다차원 배열
문자열
•
문자열?
문자의 나열
•
문자열을 저장하기 위해 필요한 것?
연속적인 메모리
•
문자열 다루기
◦
배열로 다루기
char string[10] = "abcdefg";
또는
char string[] = "abcdefg";
배열을 활용한 문자열
•
배열은 같은 변수명을 가지는 다수의 변수들이며 인덱스로 구분한다.
•
배열은 연속적인 메모리 구조를 가진다.
•
모든 배열은 근몬벅으로 일차원 배열이다.
•
배열은 열 < 행 < 면의 개념으로 연속적인 메모리를 다룬다.
정리