2. 참조 타입

2.1 배열         2.2 문자열         2.3 클래스



2.1 배열 : 동일한 타입의 변수들을 하나의 이름으로 묶어 놓은 것

■ 형식

 

  타입 [] 변수명;

 

int[] arScore;            // 1차원 정수 배열

double[] arRate;        // 1차원 실수 배열

int[,] arSung;            // 2차원 정수 배열

string[,,] arName;      // 3차원 문자열 배열

: []안에 아무것도 없으면 1차원 배열, 배열의 차수는 []안의 콤마수 +1

 

■ 배열 할당

배열형 변수 선언 후, 배열 요소를 저장하기 위한 메모리 할당 필요

(모든 참조형은 new연산자로 실제 메모리를 할당받아야 함)

arScore = new int[5];        // new int 다음에 하나의 크기 지정, 정수형 변수 5개 저장 가능

arSung = new int[2,3];      // new int 뒤에 행과 열을 콤마로 구분하여 지정, 정수 변수를 3개씩2묶음(총6개) 저장가능

 

int [] arScore = new int[5];    // 선언문과 할당문을 한 줄로 쓸수 있음 

 

■ 배열의 초기값

힙에 할당된 배열 요소는 디폴트 값으로 초기화(디폴트 값:  각 타입의 가장 무난한 값. 정수는 0, 논리형은 false, 참조형은 null)

 

int [] arScore = new int[5] { 1, 2, 3, 4, 5 }     // { }안에 초기값 나열 가능

int [] arScore = new int[] { 1, 2, 3, 4, 5 }      // 크기 5 생략 가능. 컴파일러가 개수를 세어 보고 배열의 크기 자동으로 결정

int [] arScore = { 1, 2, 3, 4, 5 }            // 초기값 리스트가 있는 경우 new 연산자 빼고 초기값 리스트만 나열 가능

 

1) 배열의 초기값은 최초할당 할 때 딱 한번 지정 가능. 할당 후 변경 불가

2) 재초기화 시에는 값을 일일이 대입해야 함

 

string[,] arCity = {

{"서울", "용인", "수원", "의정부"},

{"춘천", "홍천", "평창", "양구"},

{"대전", "합덕", "논산", "당진"},

};        // 2차원 배열의 초기화, 각 행의 초기값 개수는 일치해야 함

 

■ 배열 요소의 참조

[]안에 읽고자 하는 요소의 첨자를 적는다. 상수, 변수 다 가능. 첨자는 0부터 시작하며, 최대 첨자는 배열 크기보다 1 작다.

배열에서 유효한 첨자는 0 ~ N-1.

 

using System;

namespace ex0309
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] ar;            //정수형 배열 선언
            ar = new int[5];    //크기 5로 할당
            for (int i = 0; i < 5; i++)
            {
                ar[i] = i * 2;
            }
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(ar[i]);
            }
        }
    }
}


■ 배열의 메서드

System.Array 클래스로부터 상속받음.

 

'PROGRAMMING > C#.NET' 카테고리의 다른 글

Constructor and Destructor  (0) 2011.03.12
static and instance  (0) 2011.03.11
chap.3 타입 1.값 타입  (0) 2011.03.08
[0304과제] 연산자 종류(C, C#)  (0) 2011.03.06
[0304과제] 자료형(type)의 종류  (0) 2011.03.06
Posted by 마마필로 :