用法
sizeof(
类型说明符,
数组
名或表达式
);
或
sizeof
变量名
1.
定义:
sizeof
是
C/C++
中的一个操作符(
operator
),简单的说其作用就是
返回一个对象或者类型所占的内存字节数。
MSDN
上的解释为:
The sizeof keyword gives the amount of storage, in bytes,
associated with a variable or a type (including aggregate types).
This keyword returns a value of type size_t.
其返回值类型为
size_t
,在头文件
stddef.h
中定义。这是一个依赖于
编译系统的值,一般定义为
typedef unsigned int size_t;
世上
编译器
林林总总,但作为一个规范,它们都会保证
char
、
signed
char
和
unsigned
char
的
sizeof
值为
1
,毕竟
char
是我们编程能用的最小数据类型。
2.
语法:
sizeof
有三种语法形式,如下:
1) sizeof( object ); // sizeof(
对象
);
2) sizeof( type_name ); // sizeof(
类型
);
3) sizeof object; // sizeof
对象
;
所以,
int i;
sizeof( i ); // ok
sizeof i; // ok
sizeof( int ); // ok
sizeof int; // error
既然写法
3
可以用写法
1
代替,为求形式统一以及减少我们大脑的负
担,第
3
种写法,忘掉它吧!实际上,
sizeof
计算对象的大小也是转换成
对对象类型的计算,也就是说,同种类型的不同对象其
sizeof
值都是一致
的。这里,对象可以进一步延伸至表达式,即
sizeof
可以对一个表达式求
值,编译器根据表达式的最终结果类型来确定大小,一般不会对表达式进
行计算。如:
sizeof( 2 ); // 2
的类型为
int
,所以等价于
sizeof( int );
sizeof(
2
+
3.14
);
//
3.14
的类型为
double
,
2
也会被提升成
double
类型,所以等价于
sizeof( double );