a ++ vs a = a + 1在高效的内存编程中有用吗?

mr_*_*air 4 c programming-languages

这是我在惠普的面试问题.我回答说a ++与a = a + 1相比需要更少的指令;

我想知道哪些在高效编程中有用,以及两者是如何彼此不同的?

希望快速积极的回应..

dar*_*ioo 18

在C中,如果编译器是智能的,则没有区别.

在C++中,它取决于什么类型a,以及++运算符是否过载.更复杂的是,=操作员也可能过载,a = a + 1可能不一样a++.对于复杂的问题,+操作员也可能会过载,因此一些看似无辜的代码a = a + 1可能会产生严重影响.

所以,没有一些背景,你根本无法知道.

  • @Vovanium:当我提到运算符重载时,我提到了C++.在C中我没有说过运算符重载.当我回答这个问题时,有一个C++标记(参见编辑历史). (7认同)

sha*_*oth 7

首先,在C++中,这将取决于类型a.显然a可以是类类型并且让那些运算符超载并且不知道细节,因此无法确定哪个更有效.

也就是说,在C和C++中,无论看起来更清洁都是可取的.首先编写清晰的代码,然后对其进行分析,看看它是否无法忍受.