[英]Print reverse of a string using recursion
此代碼有效:
void reverse(char *str)
{
if(*str)
{
reverse(str+1);
printf("%c", *str);
}
}
但是,如果我將reverse(str + 1)更改為reverse(++ str),則不會輸出第一個字符。
在:極客
出:skee
我不知道為什么
因為您正在更改方法的第一個調用中提供給您的指針,所以當它最終開始打印自己並完成執行時,索引已經增加到第二個字符。
在第一種情況下,str + 1,str根本沒有被修改,因此最后一個printf僅打印第一個字符。
請記住,前綴和后綴++實際上會更改變量的值。
++str
先遞增然后打印,您需要str++
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.