5강. 배열

InSung-Na·2023년 7월 28일
0

나우캠퍼스_C#

목록 보기
6/7
post-thumbnail

1. 1차원배열

  • 기본 개념
    • 같은 데이터형 + 변수명 + 순차적인 메모리 나열
  • 참조형
    • new를 통해 생성
  • Array객체로부터 파생된 참조형
  • foreach 사용가능

형식

  • 데이터형[] 배열명;
  • int[] array_name;
  • int[] array = new int[] {1,2,3};
  • Array.Length: 길이 확인

2. 2차원 및 다차원 배열

  • 행과 열, 면은 콤마(,)로 구분

형식

  • 데이터형[차원 수 + 1 만큼 ',' 입력] 배열명;
  • int[,] array_name;
  • int[,,] array_name;
for (int i = 0; i < 3; i++)
    for (int j = 0; j < 2; j++)
        Console.Write(정수이차원배열1[i, j]);

3. 가변 배열

  • 배열 길이가 유동적인 배열

형식

  • 데이터형[][] 배열명;
  • int[][] array_name;
  • 사용 예시
int[][] array = new int[3][];
array[0] = new int[] { 1, 2 };
array[1] = new int[] { 3, 4, 5 };
array[2] = new int[] { 6, 7, 8, 9 };

int[][] array2 = 
{
    new int[]{1,2,3 },
    new int[]{2,3,4},
    new int[]{3,4,5},
};

foreach(var i in array2) // 배열 받아오기
    foreach (var j in i) // 배열에서 데이터 받아오기 또는 for문에 i.Length를 사용
        Console.WriteLine(j); // 데이터 출력하기
        
int[][][] array3D =
            {
                new int[][] // 2D array at index 0
                {
                    new int[]{1, 2, 3}, // Row 0
                    new int[]{4, 5, 6}, // Row 1
                    new int[]{7, 8, 9}  // Row 2
                },
                new int[][]
                {
                    new int[]{1, 2 }
                },
                new int[][]
                {
                    new int[]{11, 12 },
                    new int[]{12, 13 },
                    new int[]{13, 14 },
                    new int[]{14, 15, 16 }
                }
            };

            for (int i = 0; i < array3D.Length; i++)
            {
                for (int j = 0; j < array3D[i].Length; j++)
                {
                    Console.Write($"{i}행 {j}열:");
                    for (int k = 0; k < array3D[i][j].Length; k++)
                    {
                        Console.Write(array3D[i][j][k]);
                        Console.Write(' ');
                    }
                    Console.WriteLine();
                        
                }
            }

4. 배열을 인수로 전달

  • 배열과 함수는 참조형이기 때문에 값이 변경된다

형식

int[] array = {1,2,3,4};

void func(int[] arr)
{
	//함수 내용
    //참조형이기 때문에 array를 수정하면
    //원본 array도 수정된다
}
func(array);

5. 배열을 리턴하는 함수

  • 배열을 리턴하는 의미
    • 배열이 참조하는 객체의 주소값을 리턴하는 것

형식

함수(매개변수)
{
	//함수 내용 실행
  return Array
}
var 받기 = 함수(매개변수)

6. 배열의 메서드

초기화 메서드

  • Array.Clear(타겟_배열, 시작_인덱스, 초기화_길이);
    • Array.Clear(numbers, 2, 4); 인덱스 2부터 5까지 0으로 초기화

배열 복사 메서드

  • public Object Clone();
  • object형이기 때문에 unboxing이 필요
    int[] nArray1 = {1,2,3,4};
    int[] nCloneArray = (int[])nArray1.Clone();

7. Reference

2개의 댓글

comment-user-thumbnail
2023년 7월 28일

이런 유용한 정보를 나눠주셔서 감사합니다.

1개의 답글