728x90
반응형
지난 시간에는 변수에 대해 알아보았는데 이번 시간에는 상수에 대해 알아보도록 하자.
이전 변수관련 내용은 아래 링크 참고
https://ttleader.tistory.com/125
상수란?
변수는 값이 바뀌고 정해지지 않은 값을 얘기했다. 반대로 상수(Constant)는 변하지 않는 값이다. 따라서 상수에 값이 한번 대입되면 이후 다른 값을 대입할 수 없는 것이 상수이고 이 상수 선언은 "Const" 라는 예약어를 사용하여 상수를 지정한다.
const bool isReturn = false;
const int i = 5;
const string strText = "Hi~";
//아래 구문은 컴파일 시 오류가 발생한다. 상수는 처음 대입 후 변경불가이다.
isReturn = true;
위 처럼 상수는 최초 값 대입 후 다시 값을 대입할 수 없다. 그리고 컴파일러는 컴파일할 때 상수의 값이 어떤 값인지 정해져 있어야 한다. 왜냐하면 상수는 무조건 변경할 수 없는 값이 정해져 있어야하기 때문이다. 정해지지 않은 값을 상수에 대입하면 오류가 발생한다.
// Mat.Max메서드를 통해 0과 9중 큰 값이 결정된다.
// 프로그램이 실행되면서 i의 값이 9로 대입된다.
int i = Math.Max(0, 9);
//오류가 발생함
//Math.Max 메서드를 통해 값이 나중에 결정되므로 미리 알 수 없는 값은 상수로 지정할 수 없다.
const int Max_i = Math.Max(0,5);
Max_i에는 미리 결정된 값이 들어가도록 해야하고 결정되지 않은 값은 컴파일러가 알 수 없기때문에 오류가 발생한다.
그렇다고 상수에 딱 정해진 단일값만 지정할 수 있는 것만은 아니다. 식으로도 상수를 지정할 수 있다. 조건은 식도 변하지 않는 정해진 식이어야 한다. 아래 예를 보자.
//이런 식은 변하지 않고 미리 계산가능하므로 상수에 대입할 수 있다.
const int i = 100 / 2 + 3;
728x90
반응형
'C#' 카테고리의 다른 글
C# Winform Label 배경 투명하게 처리하기 (UserControl 위에 Label이 표시될 경우) (1) | 2022.01.26 |
---|---|
일본어 - で,に,へ - 헷갈리는 で(데, De)의 뜻, 사용법, 의미 자세히 알아보기 (0) | 2022.01.15 |
C# 닷넷 기초 - 변수와 메모리의 이해2 : 값형식과 참조 형식(스택stack, 힙heap 메모리) / 개발자 기술 면접에서 꼭 나오는 질문 (0) | 2022.01.06 |
C# 닷넷 기초 - 변수와 메모리의 이해1 : 변수 (스택stack, 힙heap 메모리) / 개발자 기술 면접에서 꼭 나오는 질문 (0) | 2022.01.05 |
C# 닷넷 기초 - 예약어, 키워드, 식별자, 리터럴 (0) | 2021.12.29 |
댓글