看板 C_and_CPP 關於我們 聯絡資訊
請問一下 strcpy 中 while( *s++ = *t++); 可以copy char arrays 想請問一下可是++ 優先權 不是大於* 所以照理講第一個不會被複製到阿? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.77.124 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1435463721.A.B79.html
suhorng: 優先權是指 expression 怎麼 "閱讀" 06/28 12:17
suhorng: ++ 是"算出"加之前的值,然後有個把原本變數加一的副作用 06/28 12:18
suhorng: int y=123; int x = y++; ==> y~>124, x~>123 06/28 12:19
LiloHuang: 優先權是指誰先做誰後做,但是該做的事情還是都會執行 06/28 12:58
bigpigbigpig: 它與 while (*t) { *s=*t; s++; t++; } *s=*t; 等效 06/28 13:00
Frozenmouse: do {*s = *t; s++; t++;} while (*(s - 1)); 06/28 13:13
Frozenmouse: 這應該比較接近原本的語意? 06/28 13:14
Frozenmouse: 重看了一次,上面推的也沒錯,剛耍笨了orz 06/28 13:29
lj0113: F大的說明我認為跟原PO一樣 (新人見解) 06/28 13:35
lj0113: 樓樓上也對...感覺我的推文變成類似指向指標的指標 o3o 06/28 13:37
descent: 所以我們平凡人還是寫平凡的語法 06/28 20:21
bigpigbigpig: http://codepad.org/ZOMED6hN 07/04 16:02
Leeng: 一直做到 '\0'='\0' return值為0為止 還有這種寫法受教了 07/04 21:50