1. 같은 데이터형의 여러변수를 하나로 묶어서 관리하는 기능
========== ======= 여러개의 변수를 한개의 이름 통일 (구분:인덱스)
arr[0],arr[1]
===
인덱스 번호 (인덱스번호는 0부터 시작)
*** 배열의 인덱스번호를 초과하면 에러발생
ArrayIndexOutOfBoundsException
= 정수,실수,문자열의 연속적인 메모리 구조
= 단점 : 크기 고정
==> 프로그램상에서 변경할 수는 있다: 가변(컬렉션 클래스)
2. 배열 선언
데이터형[] 배열명; , 데이터형 배열명[];
예)
int[][] arr : 자바 => int[] arr[]
int arr[][] : c언어
int arr[,] : c#
3. 배열초기화 ==> 배열,클래스 ==> 저장되는 위치 (heap) , 일반 데이터(스택)
1) 생성과 동시에 초기화
int[] arr={10,20,30,40,50};
2) 생성하고 나중에 값을 채우는 방법
int[] arr=new int[크기]; ==> new를 사용하면 자동으로 0
===
동적메모리 할당 (메모리 생성) ==> malloc(),free()
arr[0] arr[1] arr[2] arr[3] arr[4] new
===arr=== =================================
279f2327 100 0 0 0 500
========= |=======|======|======|======|======
279f2327
arr[0] arr[1] arr[2] arr[3] arr[4] => 일반변수와 동일하게 사용
==> 읽기 , 쓰기
쓰기 => arr[0]=100
arr[4]=500
읽기 => System.out.println(arr[0])
예)
int[] arr=new int[5]; 저장 갯수를 알고 있는 경우
int[] arr;
arr=new int[5]; =========> 메모리에 연속적으로 20byte를 만들어 달라
=== 저장할 갯수 (저장갯수를 알수 없는 경우)
arr[0]
=== 데이터가 저장된 위치 (배열은 0부터 시작)
int[] score=new int[5];
===== ======
score[0]
===
배열의 인덱스(배열첨자)
===score=== =======================================
0 0 0 0 0
=========== =======================================
=======
배열의 요소