[C 언어의 기초] 데이터형과 선언 - 3부







상수의 종류



C 언어의 상수에는 문자형 상수, 정수형 상수, 실수형 상수, 문자열 상수, 기호상수의 5 종류의 상수가 있다. 문자형 상수는 'h'와 같이 단일 인용 부호로 싸인 1 문자이고, 문자 상수의 값은 그 문자의 ASCII 코드를 갖는다. 즉 'h'는 h의 ASCII 코드(0x68) 값을 가진다. 

정수형 상수는 10과 같이 소수점을 포함하지 않는 값으로 10진수 표현 방법과 16진수 표현 방법이 가능하다. 처음에 0x 또는 0x로시작하는 숫자는 16진수로 취급된다. x는 16진수 즉, hexadecimal에서 x를 따왔고 앞에 숫자 0이 붙는 이유는 단순히 x만 붙일 경우 변수 이름으로 오해하지 않기 위함이다. 

예를 들면, 0x1f는 16진수로 1f를 나타낸다. 또 긴 정수(long)를 표시할 때는 수치뒤에 l 또는 L을 붙인다. 가령 -1L 은 long 정수의 -1을 표시한다. 실수형 상수는1.005와 같은 소수점을 포함하는 것으로 double 형의 값으로 취급된다. 또, 1.005e-3과 같은 지수 표현도 가능하며 이것은 1.005×10-3을 의미한다. 

문자열 상수는 "hello"와 같이 2중 인용 부호로 싸인 0 개 이상의 문자열로, 컴파일러가 문자열의 종료 부분에 '\0'(null)을 첨가시켜 메모리에 저장하고 그 선두 번지를 문자열 상수의 값으로 가지고 있다. 기호형 상수는 선행 처리 제어문 #define에 따라

 #define EOF -1

와 같이 정의된 것으로 이것에 따라 기호형 정수 EOF 는 -1이라는 값을 갖게 된다. 어떤 값을 여러 번 사용할 때 하나의 이름으로 정의하는 것이 그 목적이다. 이렇게 하면 그 값을 다른 값으로 바꾸기가 용이하다. 이렇게 정의된 값은 컴파일하기 전에 프리프로세서(preprocessor)가 처리한다.


확인문제 1
/* 기호 상수를 이용한 프로그램 */
#define STRING "The C Programming Language"
#define NUMBER 255
#define INTEGER 339
#include<stdio.h>

main()
{
int digit = 34;
printf("I love%s \n", STRING );
printf("%d + %d = %d\n", NUMBER, INTEGER, NUMBER+INTEGER);
printf("%d - %d = %d\n", INTEGER, digit, INTEGER-digit);
}


확인 문제 2
/* 상수를 이용한 프로그램 */
#include<stdio.h>


main()
{
int digit = 34;
printf("I love The C Programming Language \n");
printf("255 + 339 = %d\n", 255+339);
printf("339 - %d = %d\n", digit, 339-digit);
}






Reactions

댓글 쓰기

0 댓글