【发布时间】:2015-03-01 10:06:17
【问题描述】:
//function to copy string t to string s using pointers
void strcpy(char *s,char *t)
{
while((*s++=*t++)!='\0');
return;
}
我很困惑表达式 *s++==*t++ 是如何评估的。我知道增量运算符的关联性高于赋值运算符。
【问题讨论】:
-
感谢 Arjun Sreedharan 解决了我的疑问。
-
@EdHeal 在这段代码中没有任何“糟糕”的地方。这是理解 C 字符串和指针的初学者代码,没关系
-
@EdHeal 实际上它确实复制了空字符。与此类似的代码出现在 K&R 中,也许你可以给 Brian Kernighan 发电子邮件,让他知道他是个垃圾编码器
-
他不是神。这是垃圾代码,因为它在一行代码中做了很多思考。我和海报,很难调试。我厌倦了试图变得聪明并使用书中所有技巧的程序员。不会产生可维护的代码