[問題] 字串反轉recursive問題
char *rflip(char *str,int length)
{
if(*str=='\0')
return str;
char *temp = rflip(&str[1],--length);
temp[length] = *str;//問題點
temp[length+1] = '\0';//為了最後跳離recursive結尾填上'\0'用的
return temp;
}
int main()
{
char a[4] = "abc";
char *b = rflip(a,strlen(a));
cout << b;
return 0;
}
以上是我自己嘗試的字串反轉,其實只是想嘗試一下沒想到就成功了
但我本來以為問題點會有問題(因為我並沒有宣告矩陣大小,temp只是一個pointer)
沒想到把它當矩陣寫卻有矩陣的效果
想請問一下為什麼這樣可以成功呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.105
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414673432.A.2F3.html
推
10/30 21:13, , 1F
10/30 21:13, 1F
→
10/30 22:26, , 2F
10/30 22:26, 2F
→
10/30 22:59, , 3F
10/30 22:59, 3F
推
10/31 00:45, , 4F
10/31 00:45, 4F
→
10/31 01:14, , 5F
10/31 01:14, 5F
→
10/31 01:17, , 6F
10/31 01:17, 6F
→
10/31 10:08, , 7F
10/31 10:08, 7F
→
10/31 10:09, , 8F
10/31 10:09, 8F
→
10/31 10:10, , 9F
10/31 10:10, 9F
→
10/31 10:14, , 10F
10/31 10:14, 10F
→
10/31 12:15, , 11F
10/31 12:15, 11F
→
10/31 12:15, , 12F
10/31 12:15, 12F
→
10/31 12:55, , 13F
10/31 12:55, 13F
→
10/31 12:56, , 14F
10/31 12:56, 14F
→
10/31 13:09, , 15F
10/31 13:09, 15F
→
10/31 13:14, , 16F
10/31 13:14, 16F
→
10/31 13:36, , 17F
10/31 13:36, 17F
→
10/31 18:10, , 18F
10/31 18:10, 18F
→
10/31 18:10, , 19F
10/31 18:10, 19F
→
10/31 22:06, , 20F
10/31 22:06, 20F
→
10/31 22:07, , 21F
10/31 22:07, 21F
→
11/01 01:13, , 22F
11/01 01:13, 22F