백슬래시 문자 상수란?
백슬래시(\)는 화면에 직접 출력되지 않는 특수 제어 문자(비그래픽 문자)를 소스 코드 안에서 표현할 수 있게 해주는 기호입니다. 백슬래시 뒤에 특정 문자를 붙인 것을 이스케이프 시퀀스(escape sequence)라고 하며, 컴파일러는 이를 하나의 특별한 문자 상수로 해석합니다.
이 중 가장 널리 사용되는 이스케이프 상수가 바로 줄 바꿈을 담당하는 개행 문자(\n)입니다.
C 언어의 백슬래시 문자 상수 목록
C 언어에서 사용되는 대표적인 백슬래시 문자 상수는 다음과 같습니다.
| 문자 | 의미 |
|---|---|
| '\a' | 경고음(alert, 벨 소리) |
| '\b' | 백스페이스(backspace) |
| '\f' | 폼 피드(form feed) |
| '\n' | 개행(newline, 줄 바꿈) |
| '\t' | 수평 탭(horizontal tab) |
| '\r' | 캐리지 리턴(carriage return) |
| '\v' | 수직 탭(vertical tab) |
| '\\' | 백슬래시 자체 출력 |
| '\'' | 작은따옴표(single quote) |
| '\"' | 큰따옴표(double quote) |
| '\?' | 물음표(question mark) |
예제 프로그램
다음은 백슬래시 문자 상수를 활용한 C 프로그램 예제입니다.
코드
#include<stdio.h>
#define PI 3.14
float area;
void main(){
double r;
r = 1.0;
area = PI * r * r;
printf("Area is %d \n", area); // \n은 다음 출력 내용을 새 줄에서 시작하게 합니다.
}
실행 결과
Area is 1492442840
참고: 출력 값이 이상한 이유
위 예제에서 area 변수는 float형이지만 서식 지정자를 정수형 전용인 %d로 지정했습니다. 그 결과 원주율 계산 값이 아닌 쓰레기 값(garbage value)인 1492442840이 출력되었습니다. 실수형 값을 올바르게 출력하려면 %f를 사용해야 하며, 이 경우 실행 결과는 Area is 3.140000처럼 나타납니다. 또한 표준에 맞는 코드를 위해 void main() 대신 int main()을 사용하는 것이 권장됩니다.