010. 문자형 변수 이해하기(char)010. 문자형 변수 이해하기(char)

Posted at 2010. 11. 12. 01:37 | Posted in Computer/초보자를 위한 C 언어 300제
#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);

결과는 "문자형 변수 ch의 값은 ?" 라고 출력되었다.

이 부분은 나도 한번 생각을 해보아야 겠다.

그리고 또 하나 중요한 것은

int k = 'a';
printf("숫자형 변수 k의 값은 %c\n", k);

위와 같이 사용할 수 있다는 것이다.
//