오늘은 상수에 대해 알아볼 예정입니다.
상수를 알기전에 상수와 리터럴에 대해 구분할 필요가 있습니다.
상수는 변하지 않는 값을 뜻하고 리터럴은 문자 그대로라는 뜻을 지녔습니다.
아래 코드를 보고 이해를 돕겠습니다.
const int con = 10;
int a = 11;
printf("%c", 'a');
con = a; error: assignment of read-only variable 'con'
위 코드에서 상수는 con이고 10은 리터럴입니다.
리터럴은 그냥 값 자체를 뜻합니다.
따라서 'a'도 리터럴입니다.
아래 con = a는 상수에 값을 변경하려하면 error가 발생하는 것을 알 수 있습니다.
이처럼 리터럴이 저장된 공간을 상수라 하고 상수는 값이 변경되는 것을 방지하는 역할을 합니다.
상수 사용하기
위에서 간단하게 리터럴과 상수에 대해 엿보았고, 이제 상수를 사용해보려 합니다.
간단하게 상수를 사용하는 방법은 const를 자료형 앞에 붙이면 만들수 있습니다.
(자료형 앞에 붙여도 상관은 없습니다.)
#include <stdio.h>
int main(){
const int con1 = 1;
float const con2 = 0.1f;
const chat con3 = 'a';
printf("%d %f %c\n", con1, con2, con3);
return 0;
}
실행 결과
1 0.100000 a
당연한 결과이다. 하지만 여기서 상수를 변경하려 하면 error가 발생할 것이다.
예제는 이미 위에서 다루어 보았다.
다음으로 우리는 정수 리터럴 접미사 사용을 해보겠다.
정수 리터럴 접미사 사용하기
정수 리터럴의 크기를 명확하게 표현하기 위해 접미사를 사용할 수 있다.
#include <stdio.h>
int main(){
printf("%ld\n", -10L);
printf("%lld\n", -1234567890123456789LL);
printf("%u\n", 10U);
printf("%lu\n", 1234567890UL);
printf("%lu\n", 100UL);
printf("%llu\n", 1234567890123456789ULL);
return 0;
}
실행 결과
-10
-1234567890123456789
10
1234567890
100
1234567890123456789
변수를 선언할 때는 long, long long, unsigned long 처럼 정수 자료형으로 크기를 정할 수 있지만 리터럴은 접미사를 활용하여 크기를 명시적으로 표기한다.
접미사 | 자료형 |
생략 | int |
l, L | long |
u, U | unsigned int |
ul, UL | unsigned long |
ll, LL | long long |
ull, ULL | unsigned long long |
10진수 뿐만 아니라 8, 16진수도 사용 가능하니 직접 출력해봐라.
또한 실수도 가능하다.
접미사 | 자료형 |
f, F | float |
생략 | double |
l. L | long double |
위를 참고하여 예제를 실습해볼 수 있다.
이렇게 우리는 리터럴과 상수에 대해 알아보았다.
여기서 중요한 것은 상수는 값을 변경하지 못한 다는점, 그리고 정수나 실수 뒤에 붙은 문자는 크기를 나타내는 접미사이구나 정도만 기억하고 나머지는 외울 필요가 없다.
다음엔 입력 값을 변수에 저장하는 법을 알아보겠다.
'프로그램 언어 > C언어' 카테고리의 다른 글
궁금증 해소 2 (0) | 2024.09.23 |
---|---|
입력 값을 변수에 저장하기 (0) | 2024.09.23 |
궁금증 해소 1 (0) | 2024.09.20 |
문자 자료형 사용하기 (0) | 2024.09.20 |
실수 자료형 사용하기 (0) | 2024.09.19 |