cpp中,sizeof是个编译期的operator,并不是一个函数.它的作用是:在编译期求出表达式的类型所占的字节数,并替换整个sizeof()表达式.
下面记录一些需要注意的点:
-
sizeof是个编译期的工作,所以不会对表达式进行运行时求值.向sizeof(++i)这样的东西,++i根本不会被执行.
-
还要说明的是,int i[10] 和int *i是不同的类型,前着是个数组,后者是指针.前者的sizeof为40,后者为4或8.
-
如果对函数参数进行sizeof,并且函数参数是个数组(T p[]),无论传进来的数组有几个元素,sizeof的值都是指针大小.