i++ швидше, оскільки вони повертають значення раніше. потім збільшити, можливо…. На практиці різниця не варта часу, необхідного для її обговорення. I++ швидше! 12 березня 2017 р
i++ чи i=i+1? Обидва по суті однакові. Обидва займають однакову кількість часу для компіляції [докази претензії нижче]. Однак, щоб підтримувати хорошу читабельність коду, віддайте перевагу i++ над i=i+1 .
Різниця між n++ і n = n +1 полягає в тому n++ використовує безпосередньо INC/DEC, тоді як n = n + 1 використовує інструкції підсумовування. Інструкції INC/DEC завжди ефективніші, ніж будь-яка інша форма підсумовування.
Якщо вам надано два окремих повних оператори C: i++; і i = i + 1; , обидва твердження матимуть однаковий чистий вплив на програму. Обидва додадуть 1 до значення i. Отже, якщо ви бачите окремий i = i + 1; або i++ або навіть ++i; , усі три мають однаковий чистий ефект. Але це не те, про що ви запитували.
На це запитання вже є відповіді тут: відповідно до Посібника зі стилю Google C++, "коли значення, що повертається, ігнорується, форма 'pre' ( ++i ) ніколи не менш ефективна, ніж форма 'post' ( i++ ), і часто ефективніша."
В результаті пре-інкремент швидше, ніж пост-інкремент оскільки постінкремент зберігає копію попереднього значення, де попередній інкремент безпосередньо додає 1 без копіювання попереднього значення.