主题:一个有趣的问题
nie520
[专家分:0] 发布于 2007-02-24 02:08:00
类型说明符为int,在内存中占2个字节,其取值为基本整常数。
有没有人知道int,在内存中怎么分布的??
回复列表 (共9个回复)
沙发
冷月无声406 [专家分:0] 发布于 2007-02-24 09:49:00
我个人认为,内存的低位空间将存放int的低位数据
简单说就是低位存低位,高位存高位
板凳
老大徒伤悲 [专家分:29120] 发布于 2007-02-24 11:05:00
我的看法是:不同的语言不一样
3 楼
CUIMCGRADY [专家分:0] 发布于 2007-02-24 18:07:00
学习了计算机组成原理就知道了,我觉得也是低位存低位高位存高位。
4 楼
七夜飘雪 [专家分:500] 发布于 2007-02-27 23:41:00
学过汇编的就知道是低位放低位,高位放高位,
5 楼
rickone [专家分:15390] 发布于 2007-02-28 02:06:00
低位在前,x86的CPU,另外一种,高位在前
全世界就这两种,和语言没关系,你可以用一个共用体测试一下~~
6 楼
c语之友 [专家分:0] 发布于 2007-03-02 16:38:00
c语言中的int分布应是上一位那样讲的。
7 楼
legendmoon [专家分:0] 发布于 2007-03-03 11:07:00
内存分配有 little-endian 和 big-endian两种方式!
little endian则是低地址存放最低有效字节(LSB)
big endian是指低地址存放最高有效字节(MSB)
Little Endian
低地址 ----->高地址
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 78 | 56 | 34 | 12 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Big Endian
低地址 ----->高地址
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 12 | 34 | 56 | 78 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
通常little-endian比较常用,也就是通常C中所用的。
8 楼
cyz7758520 [专家分:10] 发布于 2007-03-07 23:25:00
我这个菜鸟献上我的程序,一看便知!
#include<stdio.h>
int main()
{
union abc
{
int a;
char b[4];
}ad;
ad.a=1;
printf("%d\t%d\t%d\t%d\n",ad.b[0],ad.b[1],ad.b[2],ad.b[3]);
printf("%d %d %d %d",&ad.b[0],&ad.b[1],&ad.b[2],&ad.b[3]);
scanf("%*c");
}
9 楼
TRLZZ [专家分:0] 发布于 2007-03-11 00:27:00
int b=1234
char *p=b;
cout<<p<<endl<<p++;
可能语法上有问题,不过是个思路
我来回复