[問題] *ptr++ = *ptr++ + 123; 之evaluation
程式碼(Code):(請善用置底文網頁, 記得排版)
int arr[] = {6, 7, 8, 9, 10};
int *ptr = arr;
*ptr++ = *ptr++ + 123;
*(++ptr) = *(++ptr) + 123;
int *p = arr;
int *q = arr + sizeof(arr)/sizeof(*arr);
while( p != q )
cout << *p++ << " "; // 129 7 8 9 133
關於這段程式碼中
*ptr++ = *ptr++ + 123;
請問有版上的大大知道這行的底下運作嗎?
我的問題是不懂為什麼前面的increment沒有影響後面的dereference結果
(或是後面的increment沒有影響前面)
為什麼這行右邊的是拿6的值, 左邊也是更新6的位置
最後才把位置更新到8
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.226.188.141
→
03/06 04:31, , 1F
03/06 04:31, 1F
推
03/06 07:50, , 2F
03/06 07:50, 2F
→
03/06 21:53, , 3F
03/06 21:53, 3F
→
03/07 09:58, , 4F
03/07 09:58, 4F
→
03/07 09:59, , 5F
03/07 09:59, 5F
→
03/07 10:00, , 6F
03/07 10:00, 6F
→
03/07 13:58, , 7F
03/07 13:58, 7F
→
03/07 13:58, , 8F
03/07 13:58, 8F