- 论坛徽章:
- 0
|
原帖由 piao2004 于 2007-10-12 09:27 发表 ![]()
我写了段小代码
#include
main()
{
char a[100];
long l;
memset(a, 0, sizeof(a));
l = 10;
strcpy(a, (char *)&l);
printf("a ...
关键要分析: strcpy(a, (char *)&l);
它实现功能是: 将 l 的数值拷贝到 a 中!
那么 l=10 中的 l在内存中是如何存放的呢!
这与操作系统有关系,
可测试下面的代码:
#include <stdio.h>
main()
{
char a[100];
union for32OS
{
char dsp[4];
long l;
}kk;
memset(a, 0, sizeof(a));
kk.l = 10;
strcpy(a, (char *)&l);
printf("a=%s", a);
/*看内存中 l 到底是如何存放的!*/
printf("kk.dsp=[%02X %02X %02X %02X]", kk.dsp[0], kk.dsp[1], kk.dsp[2], kk.dsp[3]);
} |
|