sizeof运算符
来源:互联网 发布:基因大数据分析 编辑:程序博客网 时间:2024/05/21 04:44
sizeof运算符,用于计算并返回一个类型名或一个表达式大小,其返回值类型为size_t(一种机器相关的无符号整型,其值被设计得足以表示内存中任意对象的大小)。sizeof有两种形式:
1.sizeof (type);
2.sizeof expr;
对于第一种形式,我们已经能很好理解了,它就是用于获取某种类型名的大小的。比如,sizeof(int); 即是获取int类型所占字节数。对于第二种形式,正如定义中所言,它将获取一个表达式的大小,既然是表达式,那我们就可以用变量名去替代,如此,它的结果将是表达式值的类型的大小。我们可以通过以下一个例子进行验证:
double value = 0;
double *pValue = &value;
cout << sizeof pValue << endl; //pValue,指针本身
cout << sizeof *pValue << endl; //*pValue,指针所指对象
由上述代码我们可以看到,对指针进行sizeof操作,我们将得到指针类型的大小,而pValue正是一个指针值;而对*pValue进行sizeof操作,得到的则是其所指对象的值的类型的大小。
对于sizeof运算符,C++11又赋予了它新的用法,我们可以用作用域运算符来获取类成员的大小(由于sizeof并不获取类成员的实际值,当然也不存在私有公有的问题)。如,sizeof MyClass :: something;
对于sizeof运算符还需要提出的是,它部分地依赖于其作用的类型:
1.对char类型变量或者类型为char的表达式,sizeof结果为1;
2.作用于引用类型,则结果为引用绑定的对象的大小;
3.作用于指针类型,则结果为指针类型的大小;
4.作用于解引用的指针,则结果为指针所指对象的类型的大小,指针或许不一定要有效;
5.作用于数组,则结果为整个数组的大小,注意,sizeof并不会把数组转换为指针进行运算;
6.作用于string对象或vector对象,则结果仅是其固有大小,并不关系于其内元素数目。
sizeof的简单介绍就是这些,但这些特性都是需要亲自动手一个一个尝试才能有更深的印象,想千遍,不如做一遍!
- sizeof Operator/sizeof运算符
- sizeof运算符详解
- 关于sizeof运算符
- sizeof运算符
- sizeof()运算符使用
- sizeof运算符
- sizeof运算符
- 关于sizeof运算符
- sizeof运算符详解
- Sizeof运算符
- sizeof运算符详解
- 关于sizeof运算符
- sizeof运算符
- sizeof 运算符
- sizeof运算符
- sizeof运算符详解
- sizeof 运算符
- sizeof运算符解析
- iOS 官方开发教程 HelloWorld (四)实施视图控制器
- 五,fopen和open的区别:
- STM32启动过程解析
- Class.forName和New的比较
- 我为什么不向你推荐书籍
- sizeof运算符
- 1.窗口与消息
- hdu 1754 I Hate It
- 有效分析小心假设与求证——Leo鉴书41
- 六 fgets()函数
- NYOJ-36 最长公共子序列 AC
- 我有两个路由器需要串起来使用,该如何设置? (zz)
- 采用gcc编译opencv程序
- java反射机制