-
sizeof 是单目操作符
-
其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为typedef unsigned int size_t;
-
sizeof 一般在编译期执行.
可使用如下两个宏定义来实现sizeof功能
(宏为预编译)
//针对T为一个类型名的情况
#define _sizeof_type(T) (size_t)((T*)0 + 1)
//针对T为一个变量或者数组名的情况
#define _sizeof(T) ((size_t)(&T + 1) - (size_t)(&T))
int a = 0;
cout<< sizeof(a=3) <<endl;
cout<< a <<endl;
结果为 4, 3
由于sizeof不能被编译成机器码,所以sizeof作用范围内,也就是()里面的内容也不能被编译,而是被替换成类型。=操作符返回左操作数的类型,所以a=3相当于int.
网友评论