盘点SIZEOF操作符考点
最近,博主在准备找工作,刷了很多笔试题,一个常被公司考查的基础知识就是sizeof操作符。于是,博主下定决心详细盘点下sizeof操作符的考点,相信各位看了本篇博文再也不会对sizeof操作符有任何疑问。废话少说,文归正转。
基础概念:
Sizeof是C/C++中的一个操作符(operator),它以字节形式计算操作数的内存大小。操作数可为数据类型、对象、表达式、指针、数组。Sizeof返回值类型为size_t,在头文件stddef.h中定义,这是一个依赖于编译器的值,也就是说不同的编译器返回值会有差异。一般来说,有32位编译器和64位编译器之分。
sizeof有五种调用形式:
1) sizeof(type_name); // sizeof(数据类型);
2) sizeof(object); // sizeof(对象或表达式);
3) sizeof(pointer);//sizeof(指针);
4)sizeof(array);//sizeof(数组);
5) sizeof object; // sizeof 对象(写法5可以用写法1代替,忘记写法5吧)
第一种形式:sizeof( type_name )返回数据类型占用内存的字节数。
下面列出常用数据类型在32位编译器和64编译器中的内存大小:
32位编译器 | 字节数 | 64位编译器 | 字节数 |
char | 1 | char | 1 |
short int | 2 | short int | 2 |
int | 4 | int | 4 |
float | 4 | float | 4 |
double | 8 | double | 8 |
long | 4 | long | 8 |
unsigned long | 4 | unsigned long | 8 |
long long | 8 | long long | 8 |
这