배열

배열


  • 배열은 동일한 데이터 형식을 갖는 데이터의 집합체를 의미합니다 배열을 사용하면 편리하게 데이터를 모아 관리,사용이 가능합니다
  • 배열은 힙 메모라에 할당되며 , 참조 타입이다
  • 배열은 new 키워드를 사용해 메모리를 할당하고 초기화 할 수 있고, 요소의 시작은 0부터 시작하는 인덱스로 접근 가능하다

배열 선언 방법

 

데이터 형식 [ ]  배열이름 = new 데이터형식 [크기] ;   

string[] array = new string[4]; // 배열 선언하고 4개의 공간을 빌림

array[0] = "1번째 공간";
array[1] = "2번째 공간";
array[2] = "3번째 공간";    //배열의 인덱스는 0번부터 시작한다

 


반복문과 배열 


  • 배열의 크기를 구하는 방법

배열이름.Length

 

  • 배열의 크기와 for문을 이용해 배열의 요소들에 접근하고, 출력할 수 있다
string[] array = new string[4]; // 배열 선언하고 4개의 공간을 빌림

array[0] = "1번째 공간";
array[1] = "2번째 공간";
array[2] = "3번째 공간"; 
array[3] = "4번째 공간";


for(int i=0; i<array.Length; i++)
{
	Console.WriteLine($"{i+1}번째 요소는 {array[i]}입니다")
}

 

  • foreach라는 반복문을 사용 해도 된다
  • foreach는 배열이나 컬렉션과 같은 데이터 구조의 각 요소에 대해 반복적으로 코드를 실행할 때 사용되는 반복문 키워드 이다 foreach는 인덱스 범위를 벗어나는 위험 없이 배열의 값에 하나씩 접근할 수 있다
foreach (var s in array)
{
	Console.WriteLine(s);
}
  • foreach에서는 var을  사용해 컴퓨터가 타입을 알아서 찾게 해주는게 편리하고 좋다

다차원 배열


  • 배열도 다차원으로 선언이 가능하며 선언 방법도 간단하다
  • 기존 배열에서 [ ] 사이에 , 를 넣어주면 다차원을 선언할 수 있다
string[,] shortCuts2;
shortCuts2 = new string[3, 4]     // 2차원의  3행 4열 배열 선언
{
     {"1","2","3","4" },
     {"5","6","7","8" },
     { "9","10","11","12"}
};

 


String


  • string 은 기본적으로 char의 모음으로 이루어져 있습니다 이는 char[] 배열로 생각할 수 있습니다 하지만 char배열과 중요한 차이점이 있습니다
  • string과 char[] 모두 인덱로 각 요소에 접근이 가능하지만 string은 접근한 요소를 수정할 수 없는 불변성을 가지고 있습니다
  • 또 string에는 char[]배열로 변환해주는 유용한 메서드인 ToCharArray()가 있습니다
string s = "Hello";
char c = s[0]; // 'H'를 얻을 수 있습니다.



string s = "World";
char[] charArray = s.ToCharArray(); // {'W', 'o', 'r', 'l', 'd'} 배열 생성


string s = "apple";
s[0] = 'A'; // 컴파일 오류 발생 (string은 변경 불가)

char[] arr = { 'a', 'p', 'p', 'l', 'e' };
arr[0] = 'A'; // 변경 가능
// 이제 arr은 {'A', 'p', 'p', 'l', 'e'}

 

 

특징 string
char[] (char 배열)
불변성 불변(Immutable): 한 번 생성되면 내용(문자)을 변경할 수 없습니다.
가변(Mutable): 배열 생성 후에도 개별 요소를 자유롭게 변경할 수 있습니다.
타입 클래스 (System.String)
배열 타입 (System.Array 상속)
메모리 내용을 변경하면 항상 새로운 string 객체가 힙에 생성됩니다.
요소의 값을 변경해도 같은 메모리 위치를 사용합니다.

 

  • string은 char배열처럼 인덱서로 접근 가능하지만 불변성을가진 특수한 타입이라 생각하면 됩니다

 


Main 문

  • main함수를 잘 보면, 인자값으로 문자열 배열을 받는걸 알 수 있습니다.
  • c# main함수에서 문자열배열을 받는 이유는 프로그램 실행시 명령줄 인수를 전달받기 위해서 입니다
  • 이 배열을 통해 프로그램이 실행될 때 명령 프롬프트나 터미널에서 프로그램 이름 뒤에 입력된 여러 개의 문자열들을 공백을 기준으로 분리하여 하나씩 전달받아 사용할 수 있게 됩니다

'C# > 프로그래밍 언어 기초 및 활용' 카테고리의 다른 글

열거형과 구조체  (0) 2025.10.05
함수  (0) 2025.10.05
디버거  (0) 2025.09.23
반복문  (0) 2025.09.20
조건문  (0) 2025.09.20