sizeof && strlen

sizeof&&strlen

这是我本人的第一份博客,开始决定写的时候感觉像登山一样,好几次点开了界面想了想又直接关住。但真正写起来并不太难,甚至还有一种像洪水倾泻一样的畅快淋漓。

strlen

在这里插入图片描述
在这里插入图片描述

这里可以看出strlen()计算的是值的大小,而不是像sizeof()一样直接把括号里的东西转化成类型计算。
在这里插入图片描述
这是strlen和sizeof的不同。
在这里插入图片描述
如果是数字的话就只能在初始化时赋值了,而且是以字符串的形式。strlen 没法以数组形式赋值和初始化。

sizeof

首先,不知为何我在创建数组初始化之后,无法对没有规定大小却赋了值的数组进行计算,所以我只能在初始化时赋值。(下面的输出行我打错了,见谅见谅~)

在这里插入图片描述

这里数组得出的值正好是36(9*4),但如果是字符串就不一样了。

在这里插入图片描述
为什么是7呢,我明明输入的字符串里只有6个字母,不应该是6(6*1)吗?
其实字符串的结尾还有个 ‘\0’ 我们看不见,但是却存在。
这个 ‘\0’ 不仅看不见,还占了储存空间。
(在这里声明一下,数组结束时没有结束符,可以理解为后面全为null)
在这里插入图片描述

而字符数组和数字数组一样。(其实数字数组也是字符数组)

sizeof的一些小细节

在这里插入图片描述
用sizeof后面如果是数组,可以不加括号,因为sizeof是一种关键词,但 int 之类的就不能不加括号了。
在这里插入图片描述
sizeof计算对象的大小也是转换成对对象类型的计算,也就是说,同种类型的不同对象其sizeof值都是一致的。
sizeof可以对一个表达式求值, 编译器根据表达式的最终结果类型来确定大小,一般不会对表达式进行计算。(网上搜的(-v-)~)
在这里插入图片描述
当然,不同类型的相加会自动转换到值较大的那个。

在这里插入图片描述
sizeof也可以计算函数。但得出的结果和函数本身没关系,函数也不会调用,只是计算返回值的大小。但不能计算函数名,我想应该没人会无聊到去计算函数名的吧(—> v —>)。
在这里插入图片描述
(注意:sizeof( int* )在32位机器是4,而在64位机器是8,这和电脑的地址线的多少有关系。(指针都是一个类型的,存的都是地址,表示的位数就是地址位 / 8))

还有,就是调用函数时形参是指针,指向实参,所以说函数里形参的值是指针的值。

下面是一些网上截来的知识点,提前知道一些,以后用。
在这里插入图片描述

最后,说一点,(上面提到过)strlen是计算字符串的大小,没法计算数组,我看谁敢弄错哦。
如果算数组的话他会报错,别问我为什么知道…

好了,就到这里了,虽然大部分在搜狗百科都能搜到,但还是会有人懒得搜,我懂得(—>v—>)。所以我决定做这个以开始我的博客生活,希望我的将来能像我这个开端一样,虽然过程很苦,但结果很甜。

————一个来自三线城市却期望梦想实现的大一狗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值