C언어 - 상수(리터럴 상수, 심볼릭 상수)

Programming/C 2016. 2. 1. 06:00

<상수란?>

 

프로그램 실행 도중 값이 변경되지 않는 데이터를 의미한다.

상수에는 리터럴 상수와 심볼릭 상수가 있다.

1. 리터럴 상수

1, 2, 3, a, b, c와 같은 읽은 그대로의 의미가 있는 상수 

 정수형 상수 : 소수점이 포함되지 않은 상수

10진수 상수 : 10, 20, 30   16진수 상수 : 0x10, 0x20, 0x30   8진수 상수 : 010, 020, 030

출력 서식 문자 : %d, %x, %o

 

 실수형 상수 : 소수점이 포함된 상수

출력 서식 문자 : %f, %lf

 

 문자 상수 : 작은 따옴표(' ')로 묶인 문자 하나

ex) A, B, a, b, &, *, +, - 와 같은 영문자숫자특수 기호 문자를 말함.

출력 서식 문자 : %c

 

 문자열 상수 : 큰 따옴표(" ")로 묶은 하나 이상의 문자로 구성된 문자열문자열 상수 맨 마지막에 문자열의 끝을 알리는 종료 문자 \0을 자동으로 추가(NULL 문자)

출력 서식 문자 : %s

 

<실습>

#include <stdio.h>

int main()

{

   printf("10진수 정수형 상수 : %d, 16진수 정수형 상수 : %x, 8진수 정수형 상수 : %o \n", 10, 10, 10);

   printf("실수형 상수 : %lf \n", 3.1);

   printf("문자 상수 : %c, %c \n", 'a', '#');

   printf("문자열 상수 : %s \n", "10 + 10");

   return 0;

}


-결과-



 

 

 

2. 심볼릭 상수

상수를 기호화하여 의미있는 이름으로 지어서 쓰는 상수 

 const 키워드 - 상수화 시키기

 

<실습>

#include <stdio.h>

int main()

{

const int NUM = 100;    // NUM;으로 종료하면 에러가 난다아무 의미 없는 값이 상수화 되어 버리기 때문!

const double PI = 3.14;    // NUM 100으로 쓰고, PI 3.14로 쓴다.

 

// NUM = 200; 만약 주석처리 하지 않으면 에러 발생이미 위에서 NUM에 상수화를 시켜버려서 NUM은 상수가 되었다그런데 밑에서 또 상수=상수이렇게 되어버리기 때문에 에러!

// PI = 3.15;

 

printf("NUM = %d \n", NUM);   // 100이 출력

printf("PI = %lf \n", PI);   // 3.14출력

 

return 0;

}

 

-결과-



 define 키워드 - 상수화 시키기

 

<실습>

#include <stdio.h>

#define PI 3.14

#define NUM 100

 

int main()

{

   printf("NUM = %d \n", NUM);

   printf("PI = %lf \n", PI);

 

   return 0;

}

 

-결과-



posted by 경원구