C++ 学习笔记(四) 关于sizeof的用法

本文介绍了C++中sizeof操作符的用法,包括在不同系统下指针的大小、数组的尺寸计算以及空类型和含有虚函数的类的内存占用。在32位系统上,指针占用4个字节,64位系统上则为8个字节。当数组作为参数传递时,会退化为指针,导致sizeof返回指针的大小。解决方法是通过传数组引用保持其尺寸信息。此外,空类型在VS中占用1个字节,而添加虚函数会导致类实例增加一个指向虚函数表的指针,占用4个字节。
摘要由CSDN通过智能技术生成

1、在32位机器上,指针的大小为4,64位系统上,指针的大小为8

int *p;
cout << "size of pointer: " << sizeof(p) << endl;

输出结果为 4

2、数组的大小,和数组作为形参,退化成指针的情况

(1)数组大小

int a[10];
cout << "size of int array[10]: " << sizeof(a) / sizeof(int) << endl;

输出结果为10
(2)数组退化为指针

int ArraySizeFalse(int array[])
{
	return  sizeof(array);
}
cout << "array degenerates into a pointer: " << ArraySizeFalse(a) << endl;

输出结果为4

解决方法,传数组的引用,但数组大小需定义。

3、关于空类型,包含虚函数的类型的大小


(1)空类型:不含任何的成员变量和成员函数;和仅包含默认构造默认析构的类

class EmptyClass{

};
class ClassWithConstructor{
public:
	ClassWith
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值