关闭

sizeof(int/long/...)

标签: C指针sizeof
268人阅读 评论(1) 收藏 举报
分类:
Usually:
整型 int 4字节

长整型 long 4字节

字符型 char 1字节

单精度 float 4字节

双精度 double 8字节

长双精度 long double 8字节



换算关系:

1GB=1024MB

1MB=1024KB

1KB=1024Byte

1Byte=8Bit

一个字节等于八个位

But:

int的字节长度是由CPU和操作系统编译器共同决定的,一般情况下,主要是由操作系统决定,比如,你在64位AMD的机器上安装的是32位操作系统,那么,int默认是32位的;如果是64位操作系统,64位操作系统分为两种,1种是int为32位long为64位,2种int long均为64位。之所以说int同时也与编译器有关,编译器完全可以在32位系统模拟64位整数,例如Unix/Linux下的long long和Windows下的__int64均为64位整数。

---------------------------------------------------------------------

16位机器是2个字节,32位机器下面是4个字节

这个操作系统的位数有关,一个int的大小是操作系统的一个字长,TC是16位系统程序,所以int是16bit业就是两个字节 ,在32位linux和32位Windows下,都是4个字节,也就是目前最常用的VC和gcc结果。

---------------------------------

gcc中的int和long类型长度都为4字节

(1)int类型的长度有什么决定?? 
……准确的字节数依赖于机器和编译器…… 
现阶段32bit(即4字节)PC一般在绝大多数编译器下是32bit,当然也有的编译器是16bit(比如turbo C)。最关键一点,只能小,不能大,这是因为即使编译器把它当作大于32bit了,但因为CPU字长只有32bit,所以也只能处理32bit的数。 
同时需要注意的就是 在c标准中只是对不同的数据类型的数字范围设置了下界,但是没有上界。 

         (2)指针的类型是由什么决定的呢? 
sizeof(Type *)=?? 
================== 
指针的大小是由内存寻址空间决定的,即地址总线决定。 

一般32位机寻址空间4G,所以指针占4字节; 

一般8位的单片机寻址空间是64k,所以指针占2字节

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:282次
    • 积分:4
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    阅读排行
    评论排行
    最新评论