sizeof与数组,短路操作

首先简单介绍下sizeof,他是用来计算某个数据或数据类型在内存中所占用的存储空间,以字节为单位进行计数。下面是简单的例子。

 

分析:因为a是整形变量,int型数据占4个字节。

         arr数组是整形数组,内有3个元素,所以占用3*4个字节。

         arr1数组是字符串,一个字符占一个字节,系统会在字符串后面自动补'\0',所以占用6个节。

如上图,有第一个例子可轻松看出40和10。但是为什么下面两个输出的结果是8,8呢。

分析:数组传参时,传的的地址,我们用的是指针类型的形参来接收,在test1中sizeof(arr)求的是指针类型所占的字节数大小,在调用test2时也是同样的道理。不管是什么类型的指针,比如char*,int*,他们所占的字节数大小都是4或者8。实际上,指针所占字节的大小跟操作系统有关,32位操作系统返回值是4,64位操作系统返回值是8。

短路操作 

&&--左边操作数如果为假,右边无需计算

||--左边操作数如果为真,右边无需计算

例1:

分析:因为a初始值为0,a++时,a先使用后++,此时已经为假了,就不再进行后边的计算,因此i的值为0,b,c,d的值不变。

例2:

分析:a初始为0,此时为假,++后变为1,继续右边的计算,b先++为3,此时为真,不再进行后边的计算,d的值也不会改变。因为表达式为真,所以i的值为1。 

这就叫短路操作。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秦jh_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值