关于C++的sizeof()操作符

来源:互联网 发布:婚礼布置设计软件 编辑:程序博客网 时间:2024/06/05 19:29

1、什么是sizeof

sizeof在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.

虽然msdn上讲:这个关键字返回一个size_t类型的值,但是他并不是一个函数,sizeof实质上是一个返回一个对象或类型名的长度的操作符。

2、sizeof的用法 

(1)sizeof(object)

(2)sizeof(name)
3、sizeof实例

(1)sizeof(std::string) ;//返回32

(2)sizeof(short);//返回2

(3)sizeof(long);//返回4

(4)sizeof(int);//返回4

(5)sizeof(float);//返回4

(6)sizeof(double);//返回8

(7)sizeof(char);//返回1

(8)sizeof(bool);//返回1

(9)sizeof(指针);返回4

(10)sizeof(函数),如果该函数没有返回值则无法使用sizeof(),因为无法对void使用sizeof();如果该函数有返回值则按sizeof(返回值)计算。

(11)sizeof(a=3);//返回结果为4;这是由于sizeof不能被编译成机器码,所以sizeof作用范围内,也就是()里面的内容也不能被编译,而是被替换成类型。=操作符返回左操作数的类型,所以a=3相当于int

4.影响sizeof结果的因素

sizeof具体结果还要根据编译环境来考虑,例如在VS2008中sizeof(std::string)结果为32,在VS2012中sizeof(std::string)结果为28.


0 0
原创粉丝点击