변수를 지정할 때 앞에 "const"를 붙여주면 상수로 선언이 된다.
int age = 10
이건 a가 변수로 선언이 된 것이고
const double SPEEDOFLIGHT= 1.86;
이건 앞에 const가 붙은 데다가 대문자로 이름이 작성되어 상수라고 볼 수 있다.
참고로 대문자로 적지 않아도 오류는 나지 않지만 상수 => 대문자로 작성 이라는 암묵적인 룰이 있으니 이것 또한 지켜주도록 하자.
여기까지가 상수에 대한 간략한 설명이었고 코드카데미 문제를 푸는데 막힌 부분이 있었다.
#include <stdio.h>
int main() {
const double SPEEDOFLIGHT;
int timeTraveledInSeconds = 30;
SPEEDOFLIGHT = 1.86;
printf("Light would travel %.2f miles in %d seconds\n", SPEEDOFLIGHT 100000 timeTraveledInSeconds, timeTraveledInSeconds);
}
라는 코드에서 상수 오류를 찾으라는 아주 간단한 문제였는데 첨엔 뭐가 문제지?? 라고 생각하며 찾지 못했다.
그렇게 이리저리 만져보다가 SPEEDOFLIGHT = 1.86; 줄을 지우고 const double SPEEDOFLIGHT = 1.86; 라고 한 줄로 합쳤더니 코드가 정상 작동이 되었다.
상수는 변할수가 없으니 한 줄로 써서 아예 못을 박아두는 것이다. SPEEDOFLIGHT는 1.86으로 고정이야! 하고 말이다.
오늘의 상식 : const 상수 작성은 한 줄로 써야한다.