笔记--关于c语言中各种数据类型所占字节。
2017-08-23 10:58
225 查看
struct st { int *p; int i; char a; }; int sz=sizeof(struct st);
先上题,如上,在64位处理器运行后sz的值为什么?
链接:https://www.nowcoder.com/questionTerminal/3c3fa188d6f1497a8f356252f9237b23?pos=8&mutiTagIds=569&orderByHotValue=0&done=0
来源:牛客网
考点:1.struct的对齐原则,注意不同的编译器有不同的效果。
2。不同的数据类型在32位和64位下所占字节的区别
32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
此处指针先占用8字节。int占用4字节,满足要求不用补齐,char占用一个字节,同时总的字节数必须满足8的倍数即16。
另再增加16位编译器的相关内容。
16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
参考文献:http://blog.csdn.net/left_la/article/details/8164623
相关文章推荐
- C语言中各种数据类型的长度,long型是多少字节
- C语言各种数据类型在系统中占的字节和取值范围
- C语言各种数据类型在系统中占的字节和取值范围
- C语言中各种数据类型中所占的字节和取值范围
- C语言中各种数据类型中所占的字节和取值范围
- C语言各种数据类型在系统中占的字节和取值范围
- C语言各种数据类型在系统中占的字节和取值范围
- C语言各种数据类型及其在系统中占的字节和取值范围
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- C语言学习笔记之基本数据类型
- 黑马程序员——C语言笔记之数据类型与常量
- C语言各种数据类型取值范围
- 在C语言中各种类型数据所占字节数
- 关于ARM的C语言数据类型
- C语言数据类型、所占字节以及范围
- c语言重温笔记(2)--数据类型
- AFNetworking请求各种类型的数据备忘笔记
- C语言各种数据类型取值范围
- C语言各种数据类型取值范围
- 在C语言中各种数据类型各占多少位 C语言 中结构体的位域(位段)