重温char类型

来源:互联网 发布:软件启动页面 编辑:程序博客网 时间:2024/06/16 22:37

来先看一段代码:

char a[] = { 100, 8, '2' };char c;    printf("%d\n", sizeof(a[1]));//out 1    printf("%d\n", sizeof(a[2]));//out 1    printf("%d\n", '2');//out 50    printf("%c\n", '2');`//out '2'    printf("%d\n", a[2]+a[1]);//out 58    c=a[0]*a[1];    printf("%d\n", a[0]*a[1]);//out 800    printf("%d\n", c);//out 32

以下分别解释每段代码
1. 为了表示各种字符,如#,*,a,1等,C语言创造了char类型数据。因为所有的数据在计算机中都是以二进制存储的,为了和其他数据类型区分开,定义char类型用8个二进制位表示,即一个字节。因此,char类型可以理解为有符号的整数,表示范围为0~255。
2. char一般用%c输出字符,如果你以%d(十进制整数)输出,则输出char对应的ascii码。如 ‘c’ 对应50。
3. 00110010和00000000 00000000 00000000 00110010虽然数值上相等,但计算机认为前者表示 ‘2’,后者表示int类型的50。
4. char a=50怎么理解?我认为理解为将 ‘2’ 的ASCII码以10进制的形式表示。
5. char类型可以相加减,但只能表示0~255内的数,超过会溢出。