-
배열
[학습내용] [학습목표] ▪ 선언과 초기화
▪ 다차원 배열▪ 배열의 용도를 알고, 배열을 초기화하여 자료처리에 사용할 수 있다.
▪ 다차원 배열의 개념에 대해 설명할 수 있다.선언과 초기화
1. 배열 이해
고급언어와 저급언어의 특징
▪ 동일한 이름으로 참조되는 연속된 메모리에 할당된 자료 구조
▪ 같은 데이터 타입을 묶어서 하나의 공간처럼 사용할 수 있는 자료 구조
▪ 관련 있는 데이터를 묶어서 처리할 필요가 있을 때 유용한 자료 구조
효과
▪ 많은 수의 변수 이름을 생성할 필요가 없음
▪ 동일한 이름을 사용하므로 반복문으로 구현하기가 용이함
용어
▪ 요소(Elements) 배열을 구성하는 각 항목
▪ 배열(Array)명 전체 공간에 대한 대표 이름(변수명)
▪ 크기 배열요소의 개수
▪ 첨자(Index) 각 요소에 부여되는 위치 정보
2. 선언
데이터 타입 배열명[ 크기 ] ;
▪ 양의 정수, 매크로 상수, 관련 연산식으로 지정
▪ 변수, const 상수 불가
#define SIZE 5
int a[100]; double b[20]; int c[SIZE]; char d[SIZE+1]; int size=5; int a[100]; double b[20]; int c[size]; char d[size+1]; float e[3.5]; int f[-3]; short g[0]; int h[ ];
3. 참조
▪ 각 요소에 대한 참조는 index를 이용
▪ 0 ~ size-1
▪ 배열명[index]
▪ 범위 밖의 요소를 참조하는 경우 실행(Run Time) 오류가 발생
int a[5]; a[0]=11; a[1]=22; a[2]=33; a[3]=44; a[4]=55;
4. 초기화
▪ 형식: 데이터타입 배열명[ 크기] = { 초기값1, 초기값2, 초기값3, . . . };
▪ 각 요소는 순서대로 인덱스 0부터 초기화
▪ 1 2 3 배열 크기보다 초기화 요소수가 적으면 나머지는 0으로 초기화
▪ 초기화하지않은 지역 배열요소는쓰레기값을 가짐
▪ 선언과 초기화를 같이 하는 경우 배열 크기는 생략 가능
학생50명의 국어성적을 출력하고 학급 평균을 처리하는 프로그램
#include <stdio.h> int main() { int I, kor[50], sum=0; for( i=0 ; i<50 ; i++ ) { printf(“%d번 학생의 국어점수를 입력하세요 ”); scanf(“%d”, &kor[i]); sum += kor[i]; } for( i=0 ; i<50 ; i++ ) { printf(“%d번 학생의 국어점수 : %d \n“, kor[i] ); } printf(“학급평균은 %f 이다”, sum/50.0); return 0; }
다차원 배열
1. 2차원 배열
▪ 배열을 이차원 형태로 확장
▪ 2차원은 index가 2개
▪ index의 수가 배열의 차수
▪ 형식 : 데이터 타입 배열명 [행 크기][열 크기] ;
▪ 프로그래머는 2차원 형태이나 컴퓨터는 일차원 구조
50명 학생의 국어, 영어, 수학 성적을 처리하는 프로그램
int i, score[50][3]; for(i=0;i<50;i++) scanf(“%d %d %d”, &score[i][0], &score[i][1], &score[i][2] ); for(i=0;i<50;i++) printf(“%d 번 학생의 성적 : %d %d %d”, i+1, score[i][0], score[i][1], score[i][2] );
이차원 배열의 초기화
2. 3차원 배열
▪ 필요에 따라 다차원 배열 선언이 가능
▪ 데이터 타입 배열명 [면][행][열]
▪ 동일한 초기화 방법 사용
5개 학급의 학생별 3과목 성적 처리
#include <stdio.h> int main() { int i,j,score[5][50][3]; for(i=0;i<5;i++) { printf(“%d반 성적입력”, i+1); for(j=0;j<50;j++) scanf(“%d %d %d”, &score[i][j][0], &score[i][j][1], &score[i][j][2] ); } return 0; }
학습정리
1. 선언과 초기화
• 배열 : 같은 데이터형의 변수들을 메모리에 연속적으로 할당하고 같은 이름으로 사용하는 자료 구조
• 배열의 선언 - 배열 원소의 데이터형, 배열 이름, 배열의 크기가 필요함 - 배열의 크기는 상수로만 지정함
• 배열의 사용 - 배열의 각 원소에 접근하려면 인덱스를 사용함 - 인덱스는 항상 0~(배열의 크기-1) 사이의 값임
• 배열의 초기화 - 배열을 초기화하려면 { } 안에 초기값을 나열함 - 배열을 초기화할 때는 배열의 크기를 생략할 수 있음
2. 다차원 배열
•필요 시 2차원 이상의 배열 형태를 구현하는 것이 가능함
•실제 메모리 구조는 인접한 메모리의 연속임
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 1 - 포인터 기초 (0) 2021.07.29 프로그래밍 언어 활용 part 1 - 문자열 (0) 2021.07.28 프로그래밍 언어 활용 part 1 - 변수의 스코프 (0) 2021.07.26 프로그래밍 언어 활용 part 1 - 함수 (0) 2021.07.26 프로그래밍 언어 활용 part 1 - 반복문 (0) 2021.07.26 댓글