-
배열
[학습내용] [학습목표] ▪ 선언과 초기화
▪ 다차원 배열▪ 배열의 용도를 알고, 배열을 초기화하여 자료처리에 사용할 수 있다.
▪ 다차원 배열의 개념에 대해 설명할 수 있다.선언과 초기화
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