C++之sizeof 运算符

本文详细介绍了C++中的sizeof运算符,包括其用法、返回值类型以及在不同情况下的表现。sizeof可以用于计算数据类型或变量所占内存大小,对于数组、表达式、指针等有不同的处理方式。例如,sizeof运算符可以返回指针本身的大小,或者解引用指针后的类型大小。同时,需要注意sizeof在处理数组和表达式时的区别,以及与指针和引用的交互。

sizeof 运算符返回一条表达式或一个类型所占的字节数(sizeof 运算符满足右结合律)。所得的值是一个 size_t 类型。

它有两种形式:

int i = 7;
	sizeof (int); //括号里面装的是数据类型以及自定义的数据类型
	sizeof     i; //这个后面跟着对象。
	sizeof int; //错误,不用这种形式,计算int所占的字节数
    sizeof (i) ; 正确的,第一种形式也可以计算对象所占的字节数

第二种形式,返回表达式结果类型的大小。

以下形式有些是例外:

	int i = 7;
	int a = 7;
	int b = 7;
	cout<<sizeof  ( a +b)<<endl; //输出 4  返回的是所占用的字节数
	cout<<sizeof  (a + b)+i;     //输出 11 返回的是所占字节数加上i的值 
	cout<<sizeof   a + (b + i);  //输出 18 这个是把b和i的值相加,现加上所占字节数 
	cout<<sizeof  (a + b + i);   //输出 4  括号里面的结果相加,结果的类型所占用的字节数
	cout<<sizeof   a + b + i;    //输出18  算出a所占字节数,再依次加上b和i的值 

sizeof和指针:

	int a = 7;
	int* p = &a;
    sizeof   p; //返回指针所占空间的大小
    sizeof  *p; //返回p所指类型的空间大小,也就是int类型所占的字节数, sizeof(int)

注意:

1.对char或类型为char 的表达式执行sizeof运算,结果为1;

2. 对引用类型执行sizeof 运算得到被引用对象所占空间的大小。

3.对指针执行sizeof运算得到指针本身所占空间的大小。

4.对解引用指针执行sizeof 运算得到指针指向的对象所占空间的大小 ,指针不需要有效。

5.对数组进行sizeof 运算,得到整个数组所占空间的大小 ,sizeof运算不会把数组转换成指针处理

6.对 string 对象或 vector 对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

syhk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值