-
(C언어)3. 배열C언어 문서화 2016. 3. 22. 21:51반응형
[배열]
1. 배열은 왜 쓰는 것일까?
이렇게 가정해 보자. 한 학생의 국어, 수학, 사회, 과학, 영어, 역사 등의 시험점수를 저장하고 싶다. 그렇다면 각 과목마다의 점수(변수)를 하나씩 하나씩 저장(선언)해야 한다.
int student1_korean=90, student1_math=91, student1_social=92, student1_science=93, student1_english=94, student1_history=95;
이런 식으로 선언해야한다. 하지만 배열을 쓰게 된다면 얘기는 달라진다.
int student1[6]={90, 91, 92, 93, 94, 95};
간단하고 한눈에 알아보기가 쉬워졌다.
이처럼 배열은 동일한 데이터 형의 변수들을 한 곳에 나열시켜 놓은 것이라고 생각하면 된다.
2. 1차원 배열
(1) 배열 선언 방법
배열은 이렇게 선언한다 :
[데이터 형] [변수 명][[배열의 크기]]={초기화 값들, ...};
<1 : 데이터 형 : int, char, 등등...
<2 : 변수 명 : student1, total, 등등...
<3 : 배열의 크기 : 정수를 입력하거나 입력하지 않는다.
TIP:배열의 크기를 3으로 잡았으면 메모리에 변수[0], 변수[1], 변수[2], 변수[3]가 생성된다. 여기서 우리가 쓸 수 있는 공간은 변수[0], 변수[1], 변수[2]이다. 변수[3]에는 \0, 즉 NULL문자가 들어간다.(NULL문자는 쉽게 말해 배열의 마침표 역할을 한다고 보면 된다.)
<4 : 초기화 값들 : 변수[0]부터 차례대로 값을 초기화한다.
TIP:[초기화 값들]란에 {0,}을 넣으면 모든 값들이 0으로 초기화된다.
(2) 배열 안으로 값을 입력하는 방법
배열 안에 값을 저장하고 싶으면 이렇게 하면 된다 :
<1 : 숫자 0부터 10까지 num[11]에 저장
1234567#include <stdio.h>int main(){int num[11], i;for(i=0; i<=10; ++i){num[i]=i;}}cs <2 : 알파벳(문자) a부터 f까지 array에 저장
1234567891011121314#include <stdio.h>int main(){char array[6], i;int j=0;for(i='a'; i<='f'; ++i){array[j]=i;++j;}for(j=0; j<6; ++j){printf("%c", array[j]);}}cs (3)일차원 배열 정리
3. 2차원 배열
(1) 배열 선언 방법
2차원 배열부터는 이 원칙을 알고 가야 한다.
첫 번째 []에는 행(row)(가로줄)를,
두 번째 []에는 열(column)(세로줄)을 써준다.
2차원 배열의 선언은 다음과 같이 한다 :
[데이터 형] [변수명][행의 개수][열의 개수]={{첫번째 행의 열들,...}, {두 번째 행의 열들...}, ...}
<1: 데이터 형 : int, char, ...
<2: 변수명 : chart, sum,...
<3: 행의 개수 : 자연수로 입력
<4: 열의 개수 : 자연수로 입력
<5: 초기화 값들 : 2차원 배열의 초기화 값들
TIP : int 변수명[2][3]={{0, 1, 2},{3, 4, 5}};
int 변수명[3][2]={{0,1},{2,3},{4,5}};
(2) 배열 안으로 값을 입력하는 방법
<1: 숫자 1부터 6까지
123456789101112131415161718include <stdio.h>int main(){int chart[2][3], i, j, num=1;for(i=0; i<2; ++i){for(j=0; j<3; ++j){chart[i][j]=num;++num;}}for (i = 0; i < 2; ++i) {for (j = 0; j<3; ++j) {printf("%d", chart[i][j]);}}return 0;}cs 결과 : 123456
<2: 알파벳 a부터 f까지12345678910111213141516171819#include <stdio.h>int main(){int i, j;char chart[2][3], alpha='a';for(i=0; i<2; ++i){for(j=0; j<3; ++j){chart[i][j]=alpha;++alpha;}}for (i = 0; i < 2; ++i) {for (j = 0; j<3; ++j) {printf("%c", chart[i][j]);}}return 0;}cs (결과는 abcdef이다.)
(3) 이차원 배열 정리
반응형'C언어 문서화' 카테고리의 다른 글
(C언어) 6. 이진탐색 (0) 2016.03.25 (C언어) 5. 문자열 (0) 2016.03.22 (C언어) 4. 아스키코드 (0) 2016.03.22 (c언어) 2. 제어문 (0) 2016.03.06 (c언어)1. 변수 (0) 2016.03.06