就是想问b为什么是321

img


是个学生,想知道这个b为什么会是321,是根据什么知识点来的

看错问题了,b=321,是因为字符'A'的ASCII码值对应的是65,然后加上个256,就是等于321。


下面是打印字符赋值后的变量a为啥是'A'的解释,如果需要,可以看下:
简单来说是因为char类型用一个int型的值赋值时,会进行截断,超出char一个字节范围的数值会被去掉。
256+'A'= 321 , 的数值二进制位是 : 1 0100 0001 ,char只取一个字节范围内的值,高位的1就被去掉。
0100 0001 对应十进制就是65 ,它对应的字符就是'A‘。
参考链接:
ASCII码表,ASCII码一览表,ASCII码对照表完整版-ASCII码中文站

#include <stdio.h>
int main(void){
//https://www.habaijian.com/
    char a;
    int b = 256 +'A';
    a=b;
    printf("%c, %d\n", a, b);
    
    return 0;
}

img

img

img

在c语言中,char类型可以转换为int类型,也就是说'A'加上一个整形数据,也就是ASCII码加256,A的ASCII码值为65,所以他的值为256+65就等于321。不懂的话可以私聊问我的