[C언어] 4. 상수(constant)
이번에는 C언어의 자료형(기본자료형)에 대해 알아보자.
상수(constant)
상수란?
1) 상수란 👉 데이터 변경이 불가능한 메모리 공간
2) 변수 vs 상수
- 공통점 : 데이터를 저장할 수 있는
메모리 공간
- 차이점
변수(variables)
: 이름이 붙여져 필요시 계속 참소, 수정 가능상수(constant)
: 데이터 변경 불가능
3) 상수의 종류
상수 구분 | 설명 및 종류 |
리터럴 상수 (literal) | ▫️ 메모리 공간의 이름 없이 소스에 그대로 표현한 자료값 ▫️ 다양한 상수를 있는 그대로 기술 ▫️ 정수형 (32) 실수형 (3.14F) 문자 ('a') 문자열상수 ("복권당첨기원!") |
심볼릭 상수 (symbolic) | const 상수(const constant) ▫️ 키워드 const 변수선언과 같음 ▫️ 수정할 수 없는 변수 이름으로 상수 정의 ▫️ const double PI = 3.141592; 매크로 상수(macro constant) ▫️ 전처리기 명령어 #define 으로 다양한 형태 정의▫️ cdefine PI 3.141592 열거형 상수(enumeration constant) ▫️ 정수 상수 목록 정의 ▫️ enum boll {False, True} |
리터럴 상수(integer types)
정수형 상수
1) 종류
int
unsigned int
long
unsigned long
long long
unsigned long
2)상수의 정수표현
- 8진수
- 16진수
실수형 상수
1) 종류
float
: 숫자f / 숫자Fdouble
: 일반소수long double
: 숫자l / 숫자L(주로)
2) 지수표현 방식
- e(E)를 사용해 10의 지수표현 방식으로 표현 가능
3.14E + 2
= 3.14 * 10^2
문자형 상수 상수
1) 표현방식
- 문자하나의 앞 뒤에 `작은 따옴표(single quote, ‘‘)를 넣어 표현
- 8진수 코드값 이용 가능
- 16진수 코드값 이용가능
- 이스케이프 시퀀스(escape sequence) :
역슬래쉬(\)
와 문자의 조합, = 특수문자 = 제어문자 = 확장문자
2) 이스케이프 시퀀스
- e(E)를 사용해 10의 지수표현 방식으로 표현 가능
3.14E + 2
= 3.14 * 10^2
심볼릭 상수(symbolice types)
심볼릭 상수
1) 심볼릭 상수
- 변수처럼 고유한 이름이 있는 상수
- 키워드
const
를 사용해선언과 초기화를 동시에
- 모두 대문자
2) const 상수 사용방법
//방법 1
const double RATE = 0.03;
//방법 2
double const RATE = 0.03;
선언 이후 저장값 수정 시 => 대입문장에서
컴파일오류 C2166
발생
macro 상수
1) macro 상수
- 전처리 지시자
#define
에 의해 정의된 상수 - 전처리 과정에서 상수값으로 바뀐 소스로 컴파일함
- 주로 대문자 이름
2) 열거형 상수 사용방법
#define PI 3.14
열거형 상수 상수
1) 열거형 상수
- 키워드
enum
을 사용해 정수형 상수 목록 집합을 정의하는 자료형 - 새로운 자료형으로 사용 가능함
2) 열거형 상수 사용방법
enum 열거형태그명 {상수1, 상수2, ....}
- 상수 값 지정 시 => 해당 값을 가짐
- 상수 값 미지정 시 => 첫 상수 기본 값: 0, 나머지 상수: 이전 상수 값 +1