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프로그래밍을 참조하였습니다.
'C C++ > C언어 기초' 카테고리의 다른 글
C4033 에러: 컴파일러 경고(수준 1) (0) | 2022.01.20 |
---|---|
C4716 에러: 컴파일러 경고(수준 1) (0) | 2022.01.20 |
C언어 #7 - 자료형의 이해 (int, long, float, double, char, short, long long) (0) | 2022.01.01 |
C언어 #6 - C언어 10진수, 16진수, 8진수 출력 (0) | 2021.12.28 |
C언어 #5 - C언어 데이터입력 scanf_s 함수의 의미 (0) | 2021.12.28 |
댓글