其实就是这句C语言代码怎么解释:
char c = 128;
printf("%d\n", c); //输出-128
printf("%d\n", 128); //输出128
那个,我的想法是这样的:
Int类型的128的二进制是1000 0000(忽略前面24个0),储存到char类型里面之后不应该还是1000 0000吗?然后用printf输出一个四字节(第二行代码),为什么就变成-128了呢?如果输出的是一个字节,确实1000 0000代表-128。
但,明明写的是printf("%d\n", c);
是不是因为系统只给c变量分配了1个字节内存,所以printf("%d\n", c); 只能读取内存中的一个字节,而不能按照%d读取4个字节?