1.Sizeof操作符:的作用是返回一个对象或类型名的字节长度.它有以下三种形式:
Sizeof(type name);Sizeof(object);Sizeof object;
返回值的类型是size_t,这是一种与机器相关的typedef定义,我们可以在cstddef头文件中找到它的定义.下面的例子使用sizeof的两种格式:
#include <cstddef>
int ia[]={0,1,2};
size_t array_size = sizeof ia;//返回整个数组的大小.也就是整个数组的字节长度,而不是第一个元素的长度,也不是ia包含的元素个数.
size_t element_size = array_size/sizeof(int);//返回int类型的大小.
int *pi = new int[3];
size_t pointer_size = sizeof(pi);
sizeof(pi)返回的值是指向int型的指针的字节长度,而不是PI指向的数组的长度.
cout<<"short&: /t"<<sizeof(short&) <<endl; short& 2
应用在引用类型上的sizeof操作符返回的是包含被引用对象所需的内存长度.
cout<<"int*:/t"<<sizeof(int*)<<endl; cout<<"short*:/t"<<sizeof(short*)<<endl; 结果都为4
应用在指针类型上的sizeof操作符返回的是包含该类型地址所需的内存长度.
注意:sizeof()操作符在编译时刻计算,因此被看作是常量表达式.它可以用在任何需要常量表达式的地方.如数组的维数或模板的非类型参数.
例如:int array[sizeof(some_type_T)];