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

int i;
char s[]="how now brown cow";
为什么
i=strlen(s+1);i的值会等于16?
如果没有+1的话是17,我如果是+8的话答案就是9

天涯尽头无女友
浏览 64回答 3
3回答

慕田峪9158850

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

侃侃尔雅

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

繁星点点滴滴

字符串的最后一个是\0; strlen就是从指定位置开始,过了多少个读到0,就是几。s+1 在这里是将s的位置往后面挪一个,起始位置往后了,自然少读一个就到0了。
打开App,查看更多内容
随时随地看视频慕课网APP