[問題] while(*s++ = *t++ );疑問

看板C_and_CPP作者 (螳勃唬)時間10年前 (2015/06/28 11:55), 編輯推噓6(607)
留言13則, 7人參與, 最新討論串1/4 (看更多)
請問一下 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

06/28 12:17, , 1F
優先權是指 expression 怎麼 "閱讀"
06/28 12:17, 1F

06/28 12:18, , 2F
++ 是"算出"加之前的值,然後有個把原本變數加一的副作用
06/28 12:18, 2F

06/28 12:19, , 3F
int y=123; int x = y++; ==> y~>124, x~>123
06/28 12:19, 3F

06/28 12:58, , 4F
優先權是指誰先做誰後做,但是該做的事情還是都會執行
06/28 12:58, 4F

06/28 13:00, , 5F
它與 while (*t) { *s=*t; s++; t++; } *s=*t; 等效
06/28 13:00, 5F

06/28 13:13, , 6F
do {*s = *t; s++; t++;} while (*(s - 1));
06/28 13:13, 6F

06/28 13:14, , 7F
這應該比較接近原本的語意?
06/28 13:14, 7F

06/28 13:29, , 8F
重看了一次,上面推的也沒錯,剛耍笨了orz
06/28 13:29, 8F

06/28 13:35, , 9F
F大的說明我認為跟原PO一樣 (新人見解)
06/28 13:35, 9F

06/28 13:37, , 10F
樓樓上也對...感覺我的推文變成類似指向指標的指標 o3o
06/28 13:37, 10F

06/28 20:21, , 11F
所以我們平凡人還是寫平凡的語法
06/28 20:21, 11F

07/04 16:02, , 12F

07/04 21:50, , 13F
一直做到 '\0'='\0' return值為0為止 還有這種寫法受教了
07/04 21:50, 13F
文章代碼(AID): #1LZt0fjv (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1LZt0fjv (C_and_CPP)