C# 배열, enum, 구조체

장현태입니다·2025년 3월 17일

배열

동일한 자료형의 요소들로 구성된 데이터 집합
배열에서 값으을 가져올때에는 인덱스에 따라 힙영역에서 해당 배열의 주소를 참조하여 값들을 가져온다

자료형[] 배열이름 = new 자료형[크기];

예시)
string[] arrStr;
arrStr = new string[10];

int[] scores = new int[3];
scores[0] = 10;
scores[1] = 20;
scores[2] = 30;
-> int[] scores = new int[3] { 10 ,20, 30 };

2차원 배열
배열을 일반적인 형태말고도 다차원 형태로 생성 할 수 있다.
int [,] array = new int[n,n];의 형태로 저장가능하다.

예시)
int[,] arr = new int[3,3];

arr[0,1] = 2;
arr[3,2] = 8;

Console.WrileLine("{0}", arr.Length); //배열크기
Console.WrileLine("{0}", arr.GetLength(0)); //0배열 크기
Console.WrileLine("{0}", arr.GetLength(1)); //1배열 크기

눈에 쉽게 표로 확인해보면
int[,] array = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
이런형태이다

배열에서 string

string은 char들의 집합으로 다음과같이 사용될 수도 있다
string은 크기가 정해져있지 않아 변경을 원할시 char형식으로 변환 후 변경해야한다.

예시)

위의 사진은 string을 char배열 형식으로 변환 후 원하는 내용을 변환하고 다시 string으로 변환하는 예시이다

arr.Replace ('a','x'); //바꾸기
arr.Split(' '); //나누기

arr 문자열을 변형하거나 바꿀 수 있고,
공백, 문자열을 기준으로 나누기를 실행 할 수 있다.

함수와 배열

원래 메서드에서 실행하는 값은 원본의 변수에는 적용되지 않는
것으로 알고 있지만 매개변수를 배열로 받은 함수는 원본변수의 값도 바뀌게 된다.
이는 원본 변수의 주소를 참조하여 일어나는 현상이다.

enum

별명을 지정하여 해당 변수의 오타를 허용하지 않는다.
enum은 컴퓨터가 계산할때 번호로 계산되기 때문에
처음부터 0으로 시작해서 +1씩 지정된다.(저장 데이터타입 int)

예시)
enum Game
{
Rock = 1,
Paper.
Scissor
}

Enum.IsDefined(typeof(Game),2);
-> bool형으로 enum의 2에서 정의가 되어있다면 true를 반환

구조체

여러 데이터를 담을 수 있는 박스에 비유
여러 자료형들을 모아 조합하여 또 다른 자료형을 만들어
사용할 수 있게 만든 형식이다.

구조체에 선언데 변수 = 멤버변수(필드)

struct는 private public을 사용하여 정보 공유,은닉을 사용하여
외부에서 사용 할 수 있는지 없는지 지정하여 변수를 설정한다.

예시)

구조체는 데이터타입처럼 사용가능하다.

예제2)

배열을 사용하여 Skill 구조체에 해당하는 스킬번호와 입력값에 따라 스킬의 정보를 출력하는 시스템을 생성하였다.

0개의 댓글