当前位置: 代码迷 >> C语言 >> [求助]关于mempoint(x,y,color)中几点不懂得地方,请指教!
  详细解决方案

[求助]关于mempoint(x,y,color)中几点不懂得地方,请指教!

热度:313   发布时间:2006-09-03 16:04:34.0
以下是引用soft_wind在2006-9-3 15:58:57的发言:

是低8位.不过这个我也讲不清.
我用这个程序验证的,也许数组的空间分配规则不一样也不一定。
#include<stdio.h>
#include <conio.h>
union mask{
char c[2];
int i;
}bit_mask;
void main()
{

bit_mask.i=256;
printf("%d%d",bit_mask.c[0],bit_mask.c[1]);
getch();
}
如果c[0]是高8位,显示的应该是10,而实际上显示的01.
期待高手回复....

[此贴子已经被作者于2006-9-3 16:05:36编辑过]


----------------解决方案--------------------------------------------------------
加我的qq吧,这样进步可能更快些,学习的也不会太孤单!
46332383
----------------解决方案--------------------------------------------------------

这个我知道,呵呵。
只是我自己也模糊,3楼的理论是我以前记的,怎么好象跟眼前这个有些矛盾.....
数组是连续存储,也就是说内存地址应该不是递减而是递增才对,那么这个看似矛盾的问题应该出在i的编码上,
那么就只有把i的编码理解为它是从低位编到高位才能合理解释这个问题.
换句话说,256在内存中应该是这样存储:0000 0000 1000 0000
而不是0000 0001 0000 0000


----------------解决方案--------------------------------------------------------
  相关解决方案