C 언어 char
타입, 문자 데이터 저장과 ASCII 코드 활용
C 언어에서 char
타입은 가장 기본적이면서도 중요한 데이터 타입 중 하나입니다. 단순히 문자를 저장하는 데 사용되는 것으로 알려져 있지만, 실제로는 정수형 데이터로 동작하며, 내부적으로는 ASCII 코드와 밀접한 관계를 가지고 있습니다. 이 글에서는 char
타입의 메모리 구조, 문자 표현, ASCII 활용, 연산 가능성 등 실전적인 관점에서 깊이 있게 설명합니다.
목차
- char 타입이란?
- 메모리 구조와 저장 방식
- ASCII 코드와의 연결
- 문자 초기화 및 출력
- char 타입과 산술 연산
- signed char vs unsigned char
- 실전 예제와 활용 팁
1. char
타입이란?
char
는 C 언어의 기본 데이터 타입으로, 일반적으로 1바이트(8비트) 크기를 가지며, 문자 하나를 저장하는 데 사용됩니다.
- 실제로는 0~255 또는 -128~127 범위의 정수값을 저장합니다.
- 문자는 내부적으로 정수값(ASCII 코드)으로 변환되어 저장됩니다.
2. 메모리 구조와 저장 방식
char
변수는 1바이트의 메모리를 사용하며, 그 안에는 정수값(0~255 또는 -128~127)이 저장됩니다. 이 정수는 곧 문자로 해석됩니다.
char ch = 'A'; // 내부적으로는 65로 저장됨 (ASCII 코드)
TIP: C 언어에서 'A'
는 정수 65로 취급됩니다.
3. ASCII 코드와의 연결
C 언어의 char
타입은 ASCII 문자 코드와 직접 연결되어 있어, 모든 문자는 고유한 숫자 값으로 표현됩니다.
문자 | ASCII 코드 |
---|---|
'A' | 65 |
'a' | 97 |
'0' | 48 |
4. 문자 초기화 및 출력
char
변수는 문자 리터럴이나 ASCII 코드로 초기화할 수 있으며, printf
를 사용해 출력할 수 있습니다.
char ch1 = 'Z';
char ch2 = 90;
printf("%c\n", ch1); // Z
printf("%c\n", ch2); // Z
5. char
타입과 산술 연산
char
타입은 정수형이기 때문에 산술 연산이 가능합니다. 이를 이용해 알파벳 자동 생성, 대소문자 변환 등의 응용이 가능합니다.
'A' + 1
→ 'B''a' - 'A'
→ 32tolower('B')
→ 'b' (ctype.h 사용 시)
6. signed char
vs unsigned char
char
는 기본적으로 signed 또는 unsigned 중 하나로 컴파일러에 따라 다르게 처리됩니다.
차이점 요약:
타입 | 값 범위 |
---|---|
signed char | -128 ~ 127 |
unsigned char | 0 ~ 255 |
7. 실전 예제와 활용 팁
다음은 char
타입을 실제 코드에서 응용하는 몇 가지 예입니다.
// 대문자 알파벳 출력
for (char c = 'A'; c <= 'Z'; c++) {
printf("%c ", c);
}
활용 팁:
- 문자 비교는 숫자 비교처럼 가능함 (
if (ch == 'a')
등) - 함수 인자로
char
넘길 때 정수로 처리 가능 - 유니코드 처리가 필요하다면
wchar_t
나 UTF-8 라이브러리 활용
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 상수와 매크로, 차이점과 사용 사례 (0) | 2025.05.04 |
---|---|
C 언어 실수형 데이터 타입 정리: float, double, long double (0) | 2025.04.21 |
C 언어 정수형(Integer Types) 크기, 범위, 활용법 (0) | 2025.04.15 |
C언어 상수(Constant), const 키워드와 상수 활용하기 (0) | 2025.04.09 |
C 언어 문자형 데이터 타입 정리, char의 개념과 활용법 (0) | 2025.04.03 |