[問題] *ptrptr++ 與 (*ptrptr)++
void testing(int **ptr){
cout<<*ptr<<endl;
*ptr++;
cout<<*ptr<<endl;
(*ptr)++;
cout<<*ptr<<endl;
*ptr = *ptr + sizeof(int);
cout<<*ptr<<endl;
return;}
以上這段程式碼, 傳一個int*的位址進去之後得到以下結果
0x19
0x3e3970
0x3e3974
0x3e3984
從2到3行應該是*ptr前進一個int大小, 所以+4
3到4行是*ptr前進sizeof(int) = 4個int大小, 所以+16, 用16進制所以看起來像+10
但第1行到第2行到底發生了甚麼事 <囧> 這個bug搞了我一整天, 很想弄清楚
麻煩各位了<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.66.99
→
07/24 21:39, , 1F
07/24 21:39, 1F
推
07/24 21:55, , 2F
07/24 21:55, 2F
→
07/25 01:33, , 3F
07/25 01:33, 3F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章