2016. 2. 22. 22:01

※ 상수의 정의와 특징

 

- 상수는 변환되지 않는 값을 말한다. 초기화가 되면, 다시 재정의가 불가능합니다.

- 상수는 변환되지 않는 값 (파이, 3.14~)을 정의하여 반복적으로 사용하기 위해 쓰입니다.

- 상수에 두가지가 있다. literal 상수와 symbolic 상수가 있습니다..

 

상수는 변환되지 않는 값입니다. 즉, 초기화가 되면 재정의가 불가능하다는 말입니다..

 

 

- literal 상수는 글자 그대로 의미가 있어서, 이름이 따로 정의되지 않은 상수를 말합니다.

우리가 흔히 말하는 매직넘버! 입니다. (코드에 숫자 그대로 적는걸 뜻합니다.)

 

printf("%d", 27);

"literal 상수 10진수 27을 10진수 27로 출력하겠다."

printf("%x", 0x27);

"literal 상수 16진수 27을 16진수 27로 출력하겠다." (10진수로는, 39이다.)

printf("%o", 027);

"literal 상수 8진수 27을 8진수 27로 출력하겠다." (10진수로는, 23이다.)

 

tip. literal 상수 앞에 0x, 0이 붙어 있을 때, 각 각 16진수 8진수로 상수 값이 정의 됩니다.

 

 

- symbolic 상수는, 상수를 기호화하여 변수처럼 이름을 지어쓰는 상수를 말한다.

특징은, 매크로 상수와 const 키가 사용된다는 점이다.  


 

const int num=100;

num= 1000;

"정수형 변수 num에 100이라는 상수를 저장하여 이 값을 절대 변환하지 않겠다."

" [에러] . 값을 변환하지 않겠다고 했는데, 재정의 되었으므로 오류."

 

const int ip;

ip=100;

" [에러]. 정수형 변수 ip를 초기화하지 않았으므로 에러가 발생했다."

"초기화는 const 상수 선언과 동시에 이루어 져야 한다."

 

 

const와 매크로 상수가 있는 이유는, 파이와 같은 고유 상수의 값을 헷갈리지 않도록 알기 쉬운 이름으로 정의하기 위해서입니다.

긴 프로젝트를 짜게 되는 경우, 고유 상수를 일일히 코딩하는 것은 비효율적이기 때문에 쉬운 문자로 대체하여 쓰여집니다.


참고 : .http://baeseonha.tistory.com/entry/C%EC%96%B8%EC%96%B4%EA%B8%B0%EC%B4%88-%EB%B3%80%EC%88%98-%EC%83%81%EC%88%98-literal%EC%83%81%EC%88%98-symbolic%EC%83%81%EC%88%98

 

 

'프로그래밍 > Language' 카테고리의 다른 글

C언어 연산자에 대하여 - 비트연산  (0) 2016.02.23
C언어 연산자에 대하여  (0) 2016.02.23
변수란 무엇인가?  (0) 2016.02.22
#Pragma의 사용법  (0) 2016.02.22
전처리기에 대하여  (0) 2016.02.22
Posted by 시리시안