C#/C# 코딩

[C#] 어휘구조와 자료형에 대해 알아보자

tangent0426 2024. 8. 12. 18:00
728x90
반응형

저번 시간에는 C에 관한 설명과 C에서 향상된 C#에 개요와 장점 및 통합개발환경인 Visual Studio에 대한 설명을 드렸습니다. 이번에는 본격적으로 C#의 어휘구조와 자료형에 대해 이어서 설명해 볼까 합니다.

 

 

[C#] C#과 Visual Studio설치하기

우리가 흔히 처음 개발할때 사용하는 언어는 C,JAVA 등 여러 게임 개발할때 쓰는 언어가 많이 있죠 그러면 C,C++,C#의 차이점이 뭔지,C#의 개요와 Visual Studio에 대해서 설명해볼까 합니다. C 언어, C++,

tangent0426.tistory.com

 

C# 어휘구조

 

일단 저번 시간에 Visual Studio를 설치하고 Hello World를 출력한 코드를 이용해 C#의 구조를 설명해볼까 합니다. 

 

C#의 구조를 보자면 아래의 표와 같습니다.

1 using : 네임 스페이스를 포함 시키는 데 사용함
System : 네임 스페이스를 프로그램에 포함시킴
2 네임스페이스(클래스의 모음)을 선언함
3 클래스(메소드의 모음)을 선언함
4 Main 함수 : C# 프로그램의 진입점
5 콘솔 클래스를 이용하여 화면에 Hello World를 출력
6 프로그램이 키 입력을 기다림(프로그램 자동 종료 방지)

 

어휘구조에서 어휘라는 뜻은 프로그램을 구성하고 있는 문법적으로 의미 있는 최소의 단위로 토큰이라는 뜻을 가지고 있습니다. 이러한 어휘를 형태는 총 두 가지로 구성되는 특수형태와 일반형태로 나뉘는데 일반형태는 명칭, 리터럴 등이 있으며 특수형태는 아래의 표에 표시되어 있습니다.

지정어(keyword) As, for, int, while …
연산자(operator) + - / * …
구분자(delimiter) () : ; { } ( ) [ ]
식별자(identifier) 변수, 메서드, 클래스의 이름 …
리터럴(literal) 123, 4.33, 23.3e32, “hello” …

 

 

 

https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/ 참조

 

C#의 지정어는 C# 컴파일러가 이해할 수 있도록 미리 정의해둔 토큰으로 프로그래밍 언어 설계 시에 그 기능과 용도가 이미 정의되어 있는 단어입니다. 또한 클래스, 변수, 메서드 등이 될 수 있으며, 사용자가 임의로 결정하는 변수 이름이나 메서드 이름 등으로 사용할 수 없습니다.

 

식별자는 자료의 변수, 상수, 배열 등을 식별하기 위해 붙이는 이름으로 반드시 문자로 시작하고, 숫자나 문자가 추가되어 계속하여 반복되는 형태를 가지며 명칭의 길이에는 제한 없습니다. 또한 대소문자를 구분하고, 지정어는 @ 기호를 붙이면 식별자로 사용 가능합니다.

 

추가로 식별자는 어떤 숫자, 문자가 가진 값 자체를 뜻하며, 자신의 표기법이 곧 자신의 값이 되는 상수입니다.

 

지정어 long, int, float, double
식별자 number, age, f, d
리터럴 3, 20, 1.43F, 0.141414E1

 

 

구분자는 프로그래밍 요소를 구분해주는 기호로, 연산자를 제외한 모든 기호는 구분자라고 생각하면 됩니다.

" ; "(세미콜론)은 문장을 끝낼 때 사용합니다.
 

주석은 프로그램이 무엇을 하는가를 설명하기 위하여 소스 프로그램 내에 기술하는 문장으로 컴파일러에 의해 무시되어 프로그램 실행에는 아무런 영향을 주지 않아 현 개발자들이 팀으로 모여있을때 많이 사용하는 프로그램의 유지 보수에서 매우 중요한 문장입니다. 

// 주석 //부터 새로운 줄 전까지 모두 주석으로 간주됨
/* 주석 */

/*와 */ 사이의 모든 문자를 주석으로 간주됨
주석 안에 또 다른 주석이 포함될 수 없음

 

C# 자료형

자료형에 대해 설명하자면 자료 객체가 갖는 형으로 크게 값형(Value type)과 참조형(reference type)으로 구분됩니다.

 

자료형의 실질적인 구조 및 개념, 자료형이 가질 수 있는 값, 자료형에서 행할 수 있는 연산 정의입니다.

 

 

값형은 변수에 직접 값이 저장되는 형으로 숫자형, 문자형, 부울형, 열거형, 구조체형 등이 있습니다.

숫자형은 값을 표현하는 방법과 연산하는 방식에 따라 정수형과 실수형으로 구분됩니다.

 

 

값형인 정수형을 보자면 부호 있는 정수형과 부호 없는 정수형으로 나누어집니다.

  • 부호 있는 정수형 : sbyte(8 bit), short(16 bit), int(32 bit), long(64 bit)
  • 부호 없는 정수형 : byte, ushort, uint, ulong

 

 

값형인 실수형을 보자면 부동 소수점형과 10진 자료형 나누어집니다.

  • 부동 소수점형 : 정밀도에 따라 float(32 bit), double(64 bit) 형으로 나누어짐
  • 10진 자료형 : 회계나 금융 관련 계산과 같이 고도의 정밀도를 요하는 계산에 이용됨\

 

 

값형인 문자형은 16비트 유니코드 사용하며, 유니코드의 코드 값이 문자에 해당되는 값이 되며 수식에서 문자형은 int 형으로 반환되어 계산됩니다.

 

 

 

isPositive 변수는 False의 값을 갖게 된니다.

 

 

 

 

 

 

 

따라서 결과는 “해당 숫자는 음수입니다.” 가 나옵니다.

 

 

값형인 부울형은 True 혹은 false 중 하나의 값만을 가지는 자료형으로 부울형으로 선언된 변수는 절대로 숫자 값을 가질 수 없으며 다른 자료형으로 변환되지도 않습니다.

 

각 요일은  0 부터  6 까지의 정수 값을 가지며 , Monday 는  0, Tuesday 는  1, Wednesday 는  2, ..., Sunday 는  6 의 값을 가짐 이 코드는 요일(월요일, 화요일,수요일 등)을 열거형 으로 정의한 것임

 

참조형의 열거형은 서로 관련 있는 상수들의 모음을 씸볼릭 한 명칭의 집합으로 정의한 것으로 명시된 순서에 따라 0부터 순서 값을 가지며 정수형으로 교환하여 사용 가능합니다. 

  • 캐스팅을 사용하여 정수형으로 변환할 수 있으며 역으로 정수형을 열거형으로 변환할 수 있음
  • ++ 연산자와 연산자를 사용하여 다음 원소나 이전 원소로 이동 가능

 

참조형의 배열형은 동일한 데이터 형식을 가진 값의 집합으로, 배열은 메모리 공간을 할당하고, 각 요소는 0부터 시작하는 인덱스로 참조됩니다.

 

이상으로 간단하게  C#의 어휘구조와 자료형을 살펴보았습니다. 다음에는 연산자에 대해 살펴볼까 합니다.

 

읽어주셔서 감사합니다. ^^

반응형