PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
Re: [问题] while(*s++ = *t++ );疑问
楼主:
bdvstg
(bdvstg)
2015-06-28 20:40:27
刚刚查了一下优先级
Suffix increment > Indirection (dereference) > Direct assignment
++ (第2个) > *(第3) > =(第16)
所以我想问一下为什么不是++先做
而是取值和赋値先
也就是为什么不是底下这样
while (*t)
{
s++;
t++;
*s=*t
}
另外我对那种多个的Condition判断疑惑很久了
(不知道有没有术语,想下关键字查一下)
while(*s++ = *t++)
是要看*s的値,还是*t的値 (以程式逻辑来猜应该是*t)
(原文中两种都有人回)
还是要看 赋値的回传结果?
另外我看过3个的...
类似底下这样
while(*s++ = *t++ = *q++)
不过那时候不影响我读code就不管它
※ 引述《BitTorrent (螳勃唬)》之铭言:
: 请问一下
: strcpy 中
: while( *s++ = *t++);
: 可以copy char arrays
: 想请问一下可是++ 优先权 不是大于*
: 所以照理讲第一个不会被复制到阿?
作者: LiloHuang (十年一刻)
2015-06-28 20:42:00
因为 postfix ++ 就是先做一份拷贝,然后做 prefix ++再把刚刚拷贝的那一份回传回去
作者:
testPtt
(测试)
2015-06-28 20:45:00
while(*++s = *++t)
楼主:
bdvstg
(bdvstg)
2015-06-28 20:49:00
感谢L大大 这样说我有了解
作者:
Frozenmouse
(ï¼Šå†°ä¹‹é¼ ï¼Š)
2015-06-28 21:33:00
我觉得是要看 = 的运算结果@@所以我那时推文是拿s-1而非s因为 *(s-1) 刚好会是那串赋值的结果
楼主:
bdvstg
(bdvstg)
2015-06-29 22:03:00
对耶! 我都快忽略 "=" 也会回传値了XD
继续阅读
Re: [问题] while(*s++ = *t++ );疑问
suhorng
[问题] map要怎么从后面搜寻回来?
ykes60513
[问题] while(*s++ = *t++ );疑问
BitTorrent
[问题] 关于在程式实作出座标图
williamsm
[问题] 关于在C#接口上绘制3D曲面图
taro3750
[问题] fread & printf 程式的虫除不太掉
lj0113
[问题] 让汇出的程式找得到dll
skitty
[问题] double 小疑惑@@?
battle7
Re: [问题] 自制DLL的struct问题
EdisonX
[问题] 移除inline func里 static 变量 warning
sb5471
Links
booklink
Contact Us: admin [ a t ] ucptt.com