c언어의 문자 자료형은 문자 1개를 저장할 수 있다.
char - 1바이트 - -128~127
unsigned - 1바이트 - 0~255
char에 문자를 저장할 때 문자 그대로가 아닌 문자에 해당하는 아스키코드(ASCII)값인 정수값을 저장하게 된다.
c언어에서 char은 ''(작은따옴표)로 묶어서 표현하며 문자 하나만 묶을 수 있다.
c언어의 char에서는 ''으로 문자 하나만 묶지만 정수 자료형에서 2바이트값을 저장할 때 문자 2개를 묶을수도 있다.
ex) unsigned short a = 'BA'; // 변수에 2바이트값 저장
정수 자료형은 형식 지정자에 따라 여러가지를 표현할 수 있다.
문자, 10진수, 16진수
c언어의 char형에는 문자 그대로가 아닌 정수값으로 저장되므로 형식 지정자를 통해 여러가지 형식으로 표현할 수 있다.
%c - 문자
%d - 10진수
%x - 16진수
int main()
{
char c1 = 'a';
char c2 = 'b';
printf("%c, %d, %x\n", c1, c1, c1);
printf("%c, %d, %x\n", c2, c2, c2);
}
>>> a, 97, 61
>>> b, 98, 62
int main()
{
char c1 = 100;
char c2 = 101;
printf("%c, %d, %x\n", c1, c1, c1);
printf("%c, %d, %x\n", c2, c2, c2);
}
>>> d, 100, 64
>>> e, 101, 65
int main()
{
char c1 = 0x63;
char c2 = 0x62;
printf("%c, %d, %x\n", c1, c1, c1);
printf("%c, %d, %x\n", c2, c2, c2);
}
>>> c, 99, 63
>>> b, 98, 62
제어문자를 변수에 넣어 변수로 원하는 제어문자를 사용할 수 있다
int main()
{
char c1 = 'a';
char c2 = 'b';
char c3 = '\n';
printf("%c, %c, %c", c1 + 1, c3, c2 + 10);
return 0;
}
>>> b,
>>> , i
변수 c3에 '\n'을 넣어서 printf문에서 적용되는 것을 알 수 있다.