不同变量所占内存不同,将内存大的赋值给内存小的,存在溢出问题
比如:将int 型 变量 赋值给 char 类型变量
int占4个字节32位 char类型占1个字节8位
char = 257
int型257的二进制代码为(1 0000 0001) int型占32位,系统自动补齐剩余位数为(0000 0000 0000 0000 0000 0001 0000 0001)
因为char类型只能够存放8位 所以只能存放(0000 0001)所对应的十进制整型为1
测试代码如下:
#include<stdio.h>
int main(void){
char i = 257;
printf("%d", i);
return 0;
}
测试结果为 1