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

作者: BitTorrent (螳勃唬)   2015-06-28 11:55:19
請問一下
strcpy 中
while( *s++ = *t++);
可以copy char arrays
想請問一下可是++ 優先權 不是大於*
所以照理講第一個不會被複製到阿?
作者: suhorng ( )   2015-06-28 12:17:00
優先權是指 expression 怎麼 "閱讀"++ 是"算出"加之前的值,然後有個把原本變數加一的副作用int y=123; int x = y++; ==> y~>124, x~>123
作者: LiloHuang (十年一刻)   2015-06-28 12:58:00
優先權是指誰先做誰後做,但是該做的事情還是都會執行
作者: bigpigbigpig (To littlepig with love)   2015-06-28 13:00:00
它與 while (*t) { *s=*t; s++; t++; } *s=*t; 等效
作者: Frozenmouse (*冰之鼠*)   2015-06-28 13:13:00
do {*s = *t; s++; t++;} while (*(s - 1));這應該比較接近原本的語意?重看了一次,上面推的也沒錯,剛耍笨了orz
作者: lj0113 (tiny legend)   2015-06-28 13:35:00
F大的說明我認為跟原PO一樣 (新人見解)樓樓上也對...感覺我的推文變成類似指向指標的指標 o3o
作者: descent (「雄辯是銀,沉默是金」)   2015-06-28 20:21:00
所以我們平凡人還是寫平凡的語法
作者: bigpigbigpig (To littlepig with love)   2015-07-04 16:02:00
作者: Leeng (Leeng)   2015-07-04 21:50:00
一直做到 '\0'='\0' return值為0為止 還有這種寫法受教了

Links booklink

Contact Us: admin [ a t ] ucptt.com