关于long int 内存长度问题

fanzhijun301 2010-03-28 08:12:25

long int a = 100;

我认为 a在内存中应该占用8个字节

printf("a=%d\n",sizeof(a)); 结果输出为4?
...全文
678 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangweiit 2010-06-25
  • 打赏
  • 举报
回复
在官方资料中
没有规定long int 一定要是64位
只是说long int >= int的位数
但是,long long 肯定大于int
因此,long long ,在32位机上,就是64位
赵4老师 2010-06-25
  • 打赏
  • 举报
回复
不要迷信书、考题、老师;
要迷信CPU、编译器、调试器。
ningweidong 2010-06-25
  • 打赏
  • 举报
回复
这个跟编译器有关系统的
chenglin1822 2010-06-25
  • 打赏
  • 举报
回复
32位与64位机器输出的结果是不一样的
KityBaby 2010-06-24
  • 打赏
  • 举报
回复
那是说在不同计算机字长的情况下。int占用的内存空间也不一样的哦?
cy330206 2010-03-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 keiy 的回复:]
long int == long 就是32位的
long long (不是所有编译器支持,C99标准)才是64位的
[/Quote]

这个说的好
柯本 2010-03-28
  • 打赏
  • 举报
回复
C99标准:(Revision 2 20 October 1999)
6.7.2 Type specifiers
...
To summarize this part: 32-bit CPUs are coming to need clean 64-bit integers, just as 16-bit CPUs came to need 32-bit integers, and the need for wider integers happens irrespective of other CPUs. Thus, 32-bit C has evolved from a common ILP32 model (int, long and pointers are 32 bits) to ILP32LL (ILP32 + 64-bit long long), and this still runs on 32-bit CPUs with sequences to emulate 64-bit arithmetic.
....
lovesi3344 2010-03-28
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main()
{
cout<<sizeof(long int)<<endl;
system("pause");
return 0;
}


运行结果:4
运行环境:windows xp (32位)
liubingqian 2010-03-28
  • 打赏
  • 举报
回复
C语言标准只规定了int类型最少16位,long不能比int短(就是说可以和int一样长)。
不同的操作系统上不同的编译器实现是不同的,具体可以参考你的编译器带的limits.h头文件。
delphiwcdj 2010-03-28
  • 打赏
  • 举报
回复
在32位机器中int类型和long类型通常字长是相同的。
东大坡居士 2010-03-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 keiy 的回复:]
long int == long 就是32位的
long long (不是所有编译器支持,C99标准)才是64位的
[/Quote]

顶个~~~~~~~~~~~~~~~~
柯本 2010-03-28
  • 打赏
  • 举报
回复
long int == long 就是32位的
long long (不是所有编译器支持,C99标准)才是64位的
ericming200409 2010-03-28
  • 打赏
  • 举报
回复
不同平台输出是不一样的拉,c标准只是规定了最小长度
wuyu637 2010-03-28
  • 打赏
  • 举报
回复
http://hi.baidu.com/qinpc/blog/item/15c8ac64a10c10f5f736540a.html/cmtid/7e779f22001aeeffd7cae223
yuzl32 2010-03-28
  • 打赏
  • 举报
回复
long int类型就是long类型,32位下,占4字节.
昵称很不好取 2010-03-28
  • 打赏
  • 举报
回复
32位机器上就是4,可以换64位的看看,当然操作系统也要是64位的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧