- 동일한 자료형의 요소들로 구성된 데이터 집합
- 인덱스를 통하여 배열 요소에 접근 가능
- 배열의 처음 요소의 인덱스는 0부터 시작(zero base)
- 한 번 선언된 배열의 크기는 변경 불가
- 배열 생성 시 힙(Heap) 메모리에 메모리가 동적 할당되고, 변수에는 배열의 참조(메모리 주소)를 저장함
Length를 통해 크기 확인 가능new 키워드란?
C#에서 메모리를 할당하고 객체(혹은 배열) 을 생성하는 연산자
아래와 같은 상황일 때 사용한다:
new 키워드를 붙이는 이유
배열의 경우 참조 타입이므로 new 키워드를 사용하여 메모리를 할당해야 한다.
단, 배열을 선언과 동시에 값을 할당할 경우new키워드를 생략할 수 있다.
// 형식 1: 크기만 선언되며, 기본값(0)으로 초기화
자료형[] 배열이름 = new 자료형[배열 크기];
// 형식 2: 직접 값 초기화
자료형[] 배열이름 = new 자료형[] { 원소1, 원소2, 원소3 };
// 형식 3: new 키워드 없이 초기화
자료형[] 배열이름 = { 원소1, 원소2, 원소3 };
int[] score = new int[5];
for (int i = 0; i < 5; i++)
{
score[i] = (i + 1) * 10;
Console.WriteLine(score[i]);
}
int : 0
float : 0.0f
bool : false
char : '\0'
string : null
object : null
배열이나 컬렉션을 반복할 때 사용하는 반복문
배열의 요소를 하나씩 가져와 처리할 때 사용
foreach (자료형 내부변수 in 배열이름)
{
// 반복 수행 내용
}
var 키워드 사용 시 타입을 자동 추론자료형[,] 배열이름; // ,(쉼표)의 개수 = 차원의 수
배열이름 = new 자료형[행 수, 열 수];
예시:
int[,] matrix = new int[3, 4];
string text = "abcd";
char[] array = text.ToCharArray();
array[0] = char.ToUpper(array[0]);
text = new string(array);
Console.WriteLine(text); // 출력: Abcd
int, float, char, bool, structstring, class, object, arraystatic int Test1(int value)
{
return value += 10;
}
static void Test2(int[] array)
{
array[2] = 10;
}
static void Main(string[] args)
{
int test = 5;
Console.WriteLine("함수 전" + test);
Console.WriteLine("함수 적용" + Test1(test));
Test1(test);
Console.WriteLine("함수 후" + test); // 값 타입 → 변화 없음
int[] test2 = { 1, 2, 3, 4 };
Console.WriteLine("함수 전" + test2[2]);
Test2(test2);
Console.WriteLine("함수 후" + test2[2]); // 참조 타입 → 값이 변경됨
}