int i;char s[]="how now brown cow";為什么i=strlen(s+1);i的值會等于16?如果沒有+1的話是17,我如果是+8的話答案就是9
3 回答

慕田峪9158850
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先你要明白strlen()是怎么計(jì)算的,它是在你給定的地址開始,到找到第一個(gè)'\0'的地方,算長度。
S+1 少了一個(gè)字符

繁星點(diǎn)點(diǎn)滴滴
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
字符串的最后一個(gè)是\0; strlen就是從指定位置開始,過了多少個(gè)讀到0,就是幾。
s+1 在這里是將s的位置往后面挪一個(gè),起始位置往后了,自然少讀一個(gè)就到0了。
- 3 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報(bào)
0/150
提交
取消