博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ sizeof 操作符的用法总结
阅读量:6568 次
发布时间:2019-06-24

本文共 758 字,大约阅读时间需要 2 分钟。

在VC中,sizeof有着许多的用法,而且很容易引起一些错误。下面根据sizeof后面的参数对sizeof的用法做个总结。

A.参数为数据类型或者为一般变量:

例如sizeof(int),sizeof(long)等等。

这种情况要注意的是不同系统系统或者不同编译器得到的结果可能是不同的。

例如int类型在16位系统中占2个字节,在32位系统中占4个字节。

B.参数为数组或指针:

int a[50]; //sizeof(a)=4*50=200;求数组所占的空间大小

int *a=new int[50];// sizeof(a)=4; a为一个指针,sizeof(a)是求指针的大小,在32位系统中,当然是占4个字节。

C.参数为结构或类:

Sizeof应用在类和结构的处理情况是相同的,需要考虑字节对齐(参加另一篇文章:。另外有几点需要注意:

第一、结构或者类中的静态成员不对结构或者类的大小产生影响,因为静态变量的存储位置与结构或者类的实例地址无关。

第二、没有成员变量的结构或类(非虚)的大小为1,因为必须保证结构或类的每一个实例在内存中都有唯一的地址。

第三、包含虚函数的类或者虚继承的类,需要算上虚表指针的占的4个字节。

下面举例说明:

Class Test{int a;static double c};//sizeof(Test)=4.

Test *s;//sizeof(s)=4,s为一个指针。

Class test1{ };//sizeof(test1)=1;

Class test2{ virtual void print(){}};//sizeof(test2)=4;

参考 http://blog.csdn.net/garfield2005/article/details/7648430

 

你可能感兴趣的文章
linux
查看>>
JavaScript改变 HTML 内容
查看>>
IPv6过渡技术
查看>>
内核调度进程的机制
查看>>
python-68:BS4获取多个标签的文本
查看>>
OSPF中stub area配置实例
查看>>
c primer plus 5 读书笔记1
查看>>
YY的GCD
查看>>
AGC029 E: Wandering TKHS
查看>>
iphone-common-codes-ccteam源代码 CCRadix.m
查看>>
百度分页样式
查看>>
变量声明和定义的区别
查看>>
卖了5个月水果之后再看互联网思维
查看>>
boost::asio与ACE的对比
查看>>
国内maven库镜像(阿里云)
查看>>
SNMP AGENT函数介绍
查看>>
Git提交到多个远程仓库(多看两个文档)
查看>>
html5和html的区别是什么(精问)
查看>>
Python小知识点(3)--装饰器
查看>>
又遇到放假
查看>>