Computer/초보자를 위한 C 언어 300제
010. 문자형 변수 이해하기(char)
Theo Kim
2010. 11. 12. 01:37
#include <stdio.h> main() { char ch; unsigned char j; char k; ch = 200; j = 200; k = 'a'; printf( "문자형 변수 ch의 값은 %d\n",ch ); printf( "문자형 변수 j의 값은 %d\n",j ); printf( "문자형 변수 k의 값은 %d\n",k ); }
간단한 예제 처럼 보이지만 무척 중요하다.
지금까지 프로그래밍을 하면서 문자는 무조건 char형에 저장해야 된다고 생각했다.
하지만 문자를 int형에 저장할 수 있다.
결국 모든 자료형에는 숫자가 저장된다.
중요한 것은 자료형이 가지는 크기가 다르다는 것이다.
char형이 -128 ~ 127 까지인 이유는 ASCII 코드의 크기 때문이다.
이것이 중요하다. 즉 과거를 알아야 된다.
컴퓨터 통신에서 HDLC의 프레임을 이야기 할 때 워크스테이션과 단말기에 대한 이야기가 나온다.
즉 과거의 워크스테이션과 단말기들의 통신에서 부터 시작하였기 때문에 프레임의 구조에서 이야기가 나온다.
물론 ASCII 코드는 0에서 부터 127까지만 사용한다.
그럼 음수값을 받으면 어떻게 될까?
char ch = -10; // 아무 음수값이나 입력
printf("문자형 변수 ch의 값은 %c\n", ch);
printf("문자형 변수 ch의 값은 %c\n", ch);
결과는 "문자형 변수 ch의 값은 ?" 라고 출력되었다.
이 부분은 나도 한번 생각을 해보아야 겠다.
그리고 또 하나 중요한 것은
int k = 'a';
printf("숫자형 변수 k의 값은 %c\n", k);
printf("숫자형 변수 k의 값은 %c\n", k);
위와 같이 사용할 수 있다는 것이다.