簡體   English   中英

使用遞歸打印反向字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM