unsigned char a[4] = {0,0,0,1};int b = *((int*)a); 这样执行完毕后,b的值是多少?unsigned char a[4] = {0,0,0,1};int b = *((int*)a);这样执行完毕后,b的值为什么不是1,而是16777216,而unsigned char a[4] = {0,0,0,0}; b的值就可

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 03:55:11

unsigned char a[4] = {0,0,0,1};int b = *((int*)a); 这样执行完毕后,b的值是多少?unsigned char a[4] = {0,0,0,1};int b = *((int*)a);这样执行完毕后,b的值为什么不是1,而是16777216,而unsigned char a[4] = {0,0,0,0}; b的值就可
unsigned char a[4] = {0,0,0,1};int b = *((int*)a); 这样执行完毕后,b的值是多少?
unsigned char a[4] = {0,0,0,1};
int b = *((int*)a);
这样执行完毕后,b的值为什么不是1,而是16777216,而unsigned char a[4] = {0,0,0,0}; b的值就可以是0,这样不对,怎么才能从unsigned char[4]正确的转换为一个int的值?

unsigned char a[4] = {0,0,0,1};int b = *((int*)a); 这样执行完毕后,b的值是多少?unsigned char a[4] = {0,0,0,1};int b = *((int*)a);这样执行完毕后,b的值为什么不是1,而是16777216,而unsigned char a[4] = {0,0,0,0}; b的值就可
一个int是4个字节,一个char是一个字节
int b = *((int*)a); //这个赋值就是把数组a的地址当作一个int的地址,那么这个数组4个字节的内容就形成了一个int:
0x00 0x00 0x00 0x01,intel内存体系是低位在前那这个值就是0x01000000,换算成10进制就是16777216
你说的怎么才能从unsigned char[4]正确的转换为一个int的值,这个说的很模糊,按你的预期是要转换成什么值呢