Questions tagged «postfix»

15
为什么我们有后缀增量?
免责声明:我完全清楚前缀和后缀增量的语义。因此,请不要向我解释它们的工作原理。 阅读有关堆栈溢出的问题,我不禁注意到程序员一遍又一遍地被后缀增量运算符弄糊涂了。由此产生以下问题:是否存在用例后缀增量在代码质量方面真正受益的用例? 让我用一个例子来澄清我的问题。这是以下内容的超级简洁实现strcpy: while (*dst++ = *src++); 但这并不是我书中最能自我记录的代码(它会在理智的编译器上产生两个烦人的警告)。那么以下替代方案有什么问题呢? while (*dst = *src) { ++src; ++dst; } 然后,我们可以摆脱条件中令人困惑的分配,并获得完全无警告的代码: while (*src != '\0') { *dst = *src; ++src; ++dst; } *dst = '\0'; (是的,我知道,src并且dst在这些替代解决方案中将具有不同的结束值,但是由于strcpy在循环之后立即返回,因此在这种情况下无关紧要。) 后缀增加的目的似乎是使代码尽可能简洁。我只是看不到我们应该如何努力。如果这最初是关于性能的,那么今天它仍然有意义吗?
55 c++  c  postfix 

11
避免使用Postfix增量运算符
我已经读到由于性能原因(在某些情况下),我应该避免使用后缀增量运算符。 但这不影响代码的可读性吗?在我看来: for(int i = 0; i < 42; i++); /* i will never equal 42! */ 看起来比: for(int i = 0; i < 42; ++i); /* i will never equal 42! */ 但这可能只是出于习惯。诚然,我没有看到很多用处++i。 在这种情况下,性能是否牺牲了可读性?还是我只是盲目的,++i可读性比i++?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.