[問題] *p++ = *q++

看板C_and_CPP (C/C++)作者 ((((>( ̄▽ ̄)<))))時間1月前 (2026/01/24 00:54), 編輯推噓9(10121)
留言32則, 14人參與, 4周前最新討論串1/3 (看更多)
我只有學過java c跟c++學得很爛 現在都寫java 所以我指標也很爛 我在BSD UNIX的作者Bill Joy的演講 看到這個*p++ = *q++ 圖在這裡 http://i.imgur.com/3QSwcbZ.jpg
https://youtu.be/rByrD_R9Vuo
影片的19分44秒左右投影片上的程式碼 所以想問*p++ = *q++ 是什麼意思 還是這個寫法不好 可是這個是BSD UNIX作者給的 讓我很想知道這個的意思 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.76.127 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1769187252.A.A08.html

01/24 00:58, 1月前 , 1F
*p = *q:把 q 抽屜的東西拿出來,放進 p 抽屜。
01/24 00:58, 1F

01/24 00:58, 1月前 , 2F
++:搬完後,p 和 q 的指尖自動向後移一格
01/24 00:58, 2F

01/24 00:59, 1月前 , 3F
複製現在這一格 然後兩邊都指到下一格
01/24 00:59, 3F

01/24 01:08, 1月前 , 4F
請問p跟q是陣列嗎?
01/24 01:08, 4F

01/24 01:11, 1月前 , 5F
p 和 q 是指標存放地址的變數 就兩隻手指 向陣列的開
01/24 01:11, 5F

01/24 01:11, 1月前 , 6F
01/24 01:11, 6F

01/24 01:11, 1月前 , 7F
這行 code 執行時 手指會按順序一格格往後指 雖然陣列
01/24 01:11, 7F

01/24 01:11, 1月前 , 8F
固定不動但指標(手指)可以透過 ++ 移動
01/24 01:11, 8F

01/24 01:17, 1月前 , 9F
懂了,謝謝。
01/24 01:17, 9F

01/26 08:27, 1月前 , 10F
......
01/26 08:27, 10F

01/26 08:28, 1月前 , 11F
工作上誰敢寫這種code 我把他吊起來打 = =
01/26 08:28, 11F

01/26 11:35, 1月前 , 12F
p[i++]=q[i++] 或是分兩行寫就好 現在編譯器會幫你做
01/26 11:35, 12F

01/26 11:36, 1月前 , 13F
最佳化 自以為聰明寫程式 會讓人看不懂 還有不一定符合
01/26 11:36, 13F

01/26 11:36, 1月前 , 14F
現在的硬體設計邏輯
01/26 11:36, 14F

01/26 11:37, 1月前 , 15F
你在80~90年代可以這樣寫 現在就不要學了
01/26 11:37, 15F

01/26 16:44, 1月前 , 16F
p[i++]...還真少見
01/26 16:44, 16F

01/26 19:28, 1月前 , 17F
p[i++]=q[i++] 這個才是全錯的寫法
01/26 19:28, 17F

01/26 19:28, 1月前 , 18F
正確的是要拆兩句 p[i] = q[i]; i++;
01/26 19:28, 18F

01/26 23:52, 1月前 , 19F
p[i++]=q[i++]不會踩到UB嗎? *p++ = *q++ 我知道不會
01/26 23:52, 19F

01/27 01:36, 1月前 , 20F
看投影片應該是講古介紹assembly idiom 對c的idio
01/27 01:36, 20F

01/27 01:36, 1月前 , 21F
m影響?
01/27 01:36, 21F

01/27 09:42, 1月前 , 22F
我會拆三行寫,*p=*q;++p;++q;
01/27 09:42, 22F

01/27 09:42, 1月前 , 23F
星號不見了,自己腦部
01/27 09:42, 23F

01/27 21:43, 1月前 , 24F
我的腦部…不見了(
01/27 21:43, 24F

01/27 21:44, 1月前 , 25F
認真說 這種 code 在嵌入初始化 SRAM 的時候還滿常看到
01/27 21:44, 25F

01/28 11:20, 1月前 , 26F
就,拜託盡量還是用人話寫程式啦
01/28 11:20, 26F

01/29 07:30, 1月前 , 27F
p[i++]=q[i++]指標會不一樣嗎?p[i++]=q[j++]有沒有必要寫這
01/29 07:30, 27F

01/29 07:30, 1月前 , 28F
01/29 07:30, 28F

01/29 08:02, 1月前 , 29F
p[i++]=q[i++]踩UB了 語意也完全不一樣
01/29 08:02, 29F

01/30 16:45, 1月前 , 30F
就是 UB 才會說全錯,有時太機械地轉換就會掉進這種坑
01/30 16:45, 30F

02/04 18:39, 4周前 , 31F
推文+1 記憶體搬資料用 但這樣寫會讓我腦內打結 我也是
02/04 18:39, 31F

02/04 18:39, 4周前 , 32F
分三行
02/04 18:39, 32F
文章代碼(AID): #1fSwUqe8 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1fSwUqe8 (C_and_CPP)