sizeof() 是什么?
sizeof是C/C++中的一个操作符(operator)
其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为
typedef
unsigned
int
size_t
;
sizeof()是干嘛用的?
简单的说其作用就是返回一个对象或者类型所占的内存字节数。
如何使用sizeof()?
sizeof() 有三种语法格式:
- sizeof(对象)
- sizeof(类型)
- sizeof 对象 (不建议使用该种方法)
实际上,sizeof计算对象的大小也是转换成对对象类型的计算,也就是说,同种类型的不同对象其sizeof值都是一致的。这里,对象可以进一步延伸至表达式,即sizeof可以对一个表达式求值,编译器根据表达式的最终结果类型来确定大小,一般不会对表达式进行计算。
sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用。
好了,重点来了:
指针变量的sizeof()
指针记录了另一个对象的地址,所以指针变量的sizeof值与指针所指的对象没有任何关系,正是由于所有的指针变量所占内存大小相等,所以MFC消息处理函数使用两个参数WPARAM、LPARAM就能传递各种复杂的消息结构(使用指向结构体的指针)。
数组的sizeof()
数组的sizeof值等于数组所占用的内存字节数