为了账号安全,请及时绑定邮箱和手机立即绑定

如下是怎么回事噢?我加几好像在递减似的~

如下是怎么回事噢?我加几好像在递减似的~

PHP C
天涯尽头无女友 2023-03-15 20:16:43
int i;char s[]="how now brown cow";为什么i=strlen(s+1);i的值会等于16?如果没有+1的话是17,我如果是+8的话答案就是9
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

首先你要明白strlen()是怎么计算的,它是在你给定的地址开始,到找到第一个'\0'的地方,算长度。
S+1 少了一个字符

查看完整回答
反对 回复 2023-03-18
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

s+n等于s[n]即从第n+1个字符开始到\0的字符串,这样就明白了吧?你可以试试s+17哦。

查看完整回答
反对 回复 2023-03-18
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

字符串的最后一个是\0; strlen就是从指定位置开始,过了多少个读到0,就是几。

s+1 在这里是将s的位置往后面挪一个,起始位置往后了,自然少读一个就到0了。

查看完整回答
反对 回复 2023-03-18
  • 3 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信