C/C++ | sizeof
首先需要说明的是 sizeof 是一种特殊的操作符(因为其结果在编译器就计算好并替换了),其结果在编译时就由编译器算好了的。
需要注意的:
操作对象是数组返回整个数组占用内存大小,而指针(如动态数组)就是一个指针的大小(原因就是其计算发生在编译期)。
不同编译器的优化不同,对齐方式不同,结果可能会不同。
sizeof(a=3),返回的是=的返回值的大小,而 a=3 不会被执行,因为编译器 sizeof 就被替换成了 4。
无法操作函数指针或返回void的函数。
string 类型的 sizeof 操作结果都是对指针的操作。
关于类的 sizeof:http://blog.csdn.net/szchtx/article/details/10254007