[问题] 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