以下我自己寫了一個字串反轉的code
void reverse(char *a)
{
int size = strlen(a);
char temp;
for(int i=0; i<size/2 ; i++)
{
temp = *(a+i);
*(a+i) = *(a+size-1-i);
*(a+size-1-i) = temp;
}
}
但在輸入時
如果我宣告 char a[] = "12345" ; 舊可以成功執行
如果我宣告 char *a = "12345" 進入該段code就會fail
請問兩者差異我要如何解釋?
是因為經由 *a 的方式宣告
a會是const type 無法被修改嘛?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.146.206
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1482930809.A.E62.html
推
12/28 21:16, , 1F
12/28 21:16, 1F
→
12/28 21:17, , 2F
12/28 21:17, 2F
→
12/28 21:25, , 3F
12/28 21:25, 3F
→
12/28 21:31, , 4F
12/28 21:31, 4F
→
12/28 22:40, , 5F
12/28 22:40, 5F
推
12/28 23:12, , 6F
12/28 23:12, 6F
→
12/28 23:26, , 7F
12/28 23:26, 7F
討論串 (同標題文章)