[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 / 숫자F
  • double : 일반소수
  • 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