본문 바로가기
C C++/C언어 기초

C언어 #8 - 상수 (int, double, 접미사, const)

by Go! Jake 2022. 1. 1.

C언어 상수

상수는 이름이 있는 상수와 없는 상수가 있다. 상수는 int, double과 같은 자료형을 근거로 표현된다.

int main(void)
{
	int num = 30 + 40;
	return 0;
 }

위 연산에서 30과 40은 상수이다. 또한 메모리에 존재한다. 메모리에 존재하기 때문에 연산이 가능한 것.

 

- 정수 30과 40은 메모리 공간에 상수의 형태로 저장

- 두 상수를기반으로 덧셈

- 덧셈의 결과로 얻어진 정수70이 변수 num에 저장

 

num은 할당된 메모리 공간에 이름을 붙인 것인데, 30과 40 등은 메모리 공간에 이름이 없다. 이를 리터럴 상수 또는 리터럴이라고 한다.

 

메모리 상의 모든 데이터는 자료형이 정해져야 한다.

int main(void)
{
	int inum = 5;
    double dnum = 7.15;
    return 0;
}

- int형으로 표현 가능한 정수형 상수는 int형으로 메모리 공간에 저장함.

- double형으로 표현 가능한 실수형 상수는 double형으로 메모리 공간에 저장함.

 

접미사를 이용한 다양한 상수의 표현

int main(void)
{
	float num1 = 5.789;
    return 0;
}

warning C4305: '초기화 중': 'double'에서 'float'(으)로 잘립니다. 라는 경고창이 발생한다. 이는 5.789는 8바이트 크기의 double 상수이기 때문이다.

 

이 때 float형 상수를 float형에 저장하고 싶다면 뒤에 f를 붙여주면 된다. 이때 에러는 발생하지 않는다.

int main(void)
{
	float num1 = 5.789f;
    return 0;
}

 

정수형 상수

접미사 자료형 예시
U unsigned int 1025U
L long 2467L
UL unsigned long 3456UL
LL long long 5768LL
ULL unsigned long long 8979ULL

 

실수형 상수

접미사 자료형 예시
F float 3.15f
L long double 5.789L

 

const 상수(심볼릭 상수)

심볼릭 상수는 변수와 마찬가지로 이름을 지닌다. const 키워드를 추가해 선언하면 된다.

int main(void)
{
	const int MAX=100;
    const double PI=3.1415;
    return 0
}

이와 같이 이름을 지니는 상수를 가르켜 심볼릭 상수라고 한다. 위에 변수도 이름을 가지고 값을 가지지만 상수로 사용하는 경우 한번 초기화하면 값을 변경할 수 없다. 변경을 시도하는 경우 컴파일 에러가 발생한다.

 

 

해당 내용은 윤성우 열혈 C프로그래밍을 참조하였습니다.

 

 

댓글