C 상수


상수는 프로그램 실행 중에 변경되지 않는 고정된 값입니다. 이러한 고정 값을 리터럴이라고도 합니다.

상수는 정수 상수, 부동 소수점 상수, 문자 상수, 문자열 리터럴은 물론 열거형 상수와 같은 모든 기본 데이터 유형이 될 수 있습니다.

상수는 상수 값을 정의한 후에 수정할 수 없다는 점을 제외하면 일반 변수와 같습니다.

정수 상수

정수 상수는 10진수, 8진수 또는 16진수 상수일 수 있습니다. 접두사는 기본을 지정합니다. 16진수의 경우 0x 또는 0X, 8진수의 경우 0이며 접두사가 없으면 기본값은 10진수입니다.

정수 상수에는 접미사가 있을 수도 있습니다. 접미사는 U와 L의 조합입니다. U는 부호 없는 정수(unsigned)를 나타내고 L은 긴 정수(long)를 나타냅니다. 접미사는 대문자 또는 소문자일 수 있으며 U와 L의 순서는 상관없습니다.

다음은 정수 상수의 몇 가지 예입니다.

212         /* 合法的 */215u        /* 合法的 */0xFeeL      /* 合法的 */078         /* 非法的:8 不是八进制的数字 */032UU       /* 非法的:不能重复后缀 */

다음은 다양한 유형의 정수 상수의 예입니다.

85         /* 十进制 */0213       /* 八进制 */0x4b       /* 十六进制 */30         /* 整数 */30u        /* 无符号整数 */30l        /* 长整数 */30ul       /* 无符号长整数 */

부동 소수점 상수

부동 소수점 상수는 정수 부분, 소수점, 소수 부분 및 지수 부분. 부동 소수점 상수를 10진수 또는 지수 형식으로 나타낼 수 있습니다.

십진수로 표현하는 경우 소수점, 지수 또는 둘 다 포함되어야 합니다. 지수 형식으로 표현하는 경우 정수 부분, 소수 부분 또는 둘 다를 포함해야 합니다. 부호 있는 지수는 e 또는 E로 시작됩니다.

다음은 부동 소수점 상수의 몇 가지 예입니다.

3.14159       /* 合法的 */314159E-5L    /* 合法的 */510E          /* 非法的:不完整的指数 */210f          /* 非法的:没有小数或指数 */.e55          /* 非法的:缺少整数或分数 */

문자 상수

문자 상수는 작은따옴표로 묶입니다. 예를 들어 'x'는 char 유형의 단순 변수에 저장할 수 있습니다.

문자 상수는 일반 문자(예: 'x'), 이스케이프 시퀀스(예: 't') 또는 범용 문자(예: 'u02C0')일 수 있습니다.

C에는 백슬래시가 앞에 오는 특정 문자가 있는데, 이는 특별한 의미를 가지며 줄바꿈(n)이나 탭(t)을 나타내는 데 사용됩니다. 다음 표에는 이러한 이스케이프 시퀀스 코드 중 일부가 나열되어 있습니다.

하나 이상의 16진수

다음 예에서는 일부 이스케이프 시퀀스 문자를 보여줍니다.

#include <stdio.h>int main(){
   printf("Hello\tWorld\n\n");   return 0;}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

Hello   World

문자열 상수

문자열 리터럴 또는 상수는 큰따옴표 ""로 묶입니다. 문자열에는 문자 상수와 유사한 문자(일반 문자, 이스케이프 시퀀스 및 범용 문자)가 포함됩니다.

공백을 구분 기호로 사용하여 긴 문자열 상수를 줄로 구분할 수 있습니다.

아래 예에서는 일부 문자열 상수를 보여줍니다. 다음 세 가지 형태로 표시되는 문자열은 동일합니다.

"hello, dear""hello, \

dear""hello, " "d" "ear"

상수 정의

C에는 상수를 정의하는 두 가지 간단한 방법이 있습니다.

  1. #define 전처리기를 사용하세요.

  2. const 키워드를 사용하세요.

#define 전처리기

다음은 #define 전처리기를 사용하여 상수를 정의하는 형태입니다.

#define identifier value

자세한 내용은 다음 예를 참조하세요.

#include <stdio.h>#define LENGTH 10   #define WIDTH  5#define NEWLINE '\n'int main(){   int area;  
  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);   return 0;}

위 코드를 컴파일하고 실행하면 다음과 같은 상수가 생성됩니다. 다음 결과:

value of area : 50

const 키워드

const 접두사를 사용하여 다음과 같이 지정된 유형의 상수를 선언할 수 있습니다.

const type variable = value;

자세한 내용은 다음 예를 참조하세요.

#include <stdio.h>int main(){   const int  LENGTH = 10;   const int  WIDTH  = 5;   const char NEWLINE = '\n';   int area;  
   
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);   return 0;}

위 코드를 컴파일하고

value of area : 50

상수를 대문자로 정의하는 것은 좋은 프로그래밍 습관이라는 점에 유의하세요.

이스케이프 시퀀스Meaning
\ 문자
'' 문자
" " 캐릭터
?? 문자
a알림 벨소리
b백스페이스
f양식 피드
n 줄 바꿈
rEnter
t가로 탭 문자
v세로 탭 문자
ooo1~3개의 8진수
xhh .