字符型char和整型int之间的关系

字符型char和整型int之间的关系


  在C语言中并没有char类型的常量(但是在C++中却有,字符常量都是char类型),其实是用int表示char,字符型与整型相比只是更加节省内存。(在所有数据类型中,char类型占用的内存空间最少)
  有符号的字符表示-128 ~ 127,无符号字符表示0 ~ 255。char相当于signed char还是unsigned char取决于编译器。
字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先将char型数据以隐形的方式转化为int型数据再进行相加减运算。因此,由字符型数据在内存的存储方式来看,字符型数据在做数字运算时实际上是对字符本身对应的ASCII码进行相应的数值运算。

整型和字符型可以相互转换:
(char)整型变量=字符型变量
(int)字符型变量=整型变量
如下例子,输出的结果为一个为 ch 表示的字符,另一个为字符对应的 ASCII码。

char ch='a';
printf("%c%d ",ch,ch);//分别输出ch的字符和对应的ASCII码。即打印出的是字符和整数。
printf("%c%c%c",ch,ch+1,ch+2);//输出“abc”

char变量可以包含任意单个字符,所以可以给char类型的变量指定字符常量,作为其初始值。
字符常量是一个放在单引号中的字符。
char letter='A';
char digit='9';
也可以使用转义序列指定字符常量,如:
char newline='\n';
char tab='\t';
也可以用整数值初始化char类型的变量,只要该值在编译器许可的char类型的值域内即可,如:
char ch=74;

既然char和int本质都是整数,为什么还要作区分呢?
  因为字符的个数相对较少,因而char型变量的存储单元可以比int型变量的存储单元小。其实就是提出一种char型变量专门存储字符,方便程序员的数据选择。

猜你喜欢

转载自blog.csdn.net/luopeng12345/article/details/112692151
今日推荐