C语言常见类型占用字节数
前言
最近笔试经常遇到C语言各类型变量所占字节数的问题,这里做一个总结好了。
类型
常见的有char、int、long、short、float、double及指针等.
字符类型
这里单只char,char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,为1个字节。
整数类型
查了资料发现对各个类型的整数占用字节数是有一个规定的,虽然16位32位或者64位的机子各种类型所占用的长度并不一样。规则如下:
- short 至少占用2个字节。
- int 建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。
- short 的长度不能大于 int,long 的长度不能小于 int。
所以说,short并不一定短,long并不一定短,有可能都和int一样长。
浮点数(小数)
C中浮点数有两种,float和double,不像整数,小数的长度始终是固定的,float占用4个字节,double占用8个字节。
指针
C中指针即为地址,所以编辑器的寻址空间则是指针的地址范围。所以指针变量在32位机器的寻址空间为2^32,要将所有地址都表示出来则需要为4个字节长度,所以要占用4个字节长度。同理64位的编译器则需要8个字节长度。
查看所占用的长度
可以使用sizeof()
来查看所占用的长度,如下:
#include <iostream> #include <vector> using namespace std; int main(int argc, const char * argv[]) { // insert code here... char *p; cout<<"char: "<<sizeof(char)<<endl; cout<<"int: "<<sizeof(int)<<endl; cout<<"short: "<<sizeof(short)<<endl; cout<<"long: "<<sizeof(long)<<endl; cout<<"*: "<<sizeof(p)<<endl; cout<<"float: "<<sizeof(float)<<endl; cout<<"double: "<<sizeof(double)<<endl; return 0; }
输出结果如下:
相关推荐
徐建岗网络管理 2020-07-28
lynjay 2020-06-14
AaronPlay 2020-06-13
chensen 2020-11-14
拉斯厄尔高福 2020-11-04
杜倩 2020-10-29
拉斯厄尔高福 2020-10-19
嵌入式资讯精选 2020-10-15
zhaochen00 2020-10-13
penkgao 2020-10-13
yiyilanmei 2020-10-05
wanshiyingg 2020-09-29
Mars的自语 2020-09-27
shenwenjie 2020-09-24
一个逗逗 2020-09-22
flycony 2020-09-13
zhaochen00 2020-08-20
Biao 2020-08-20
qingsongzdq 2020-08-19