i ++ (prefijo fórmula incremento) y ++ i (incremento postfix) de la diferencia entre el índice de eficiencia -C / C ++ base de programa (c)

caso explicar

#include<iostream>
#include <stdio.h>

int main()
{
	int i = 10;
	printf("%d\n", ++i);
	printf("-----------------\n");

	i = 10;
	printf("%d\n", --i);
	printf("-----------------\n");

	i = 10;
	printf("%d\n", i++);
	printf("-----------------\n");

	i = 10;
	printf("%d\n", i--);
	printf("-----------------\n");

	i = 10;
	printf("%d\n", -i++);
	printf("-----------------\n");

	i = 10;
	printf("%d\n", -i++);
	printf("-----------------\n");

	system("pause");
	return 0;
}

El resultado: 

Después del análisis, este problema es muy simple, siempre que el pre-Gaga (o menos negativo), son la primera para completar la auto-operación de aumento (disminución), entonces el paso siguiente ( impresión printf es el siguiente paso en este caso dentro de ); siempre y cuando el mensaje es jerk (Guardar o Guardar), el siguiente paso es, entonces el auto-aumento completa (disminución) la operación; el paso siguiente sin esperar a que parte delantera y trasera en el mismo !

Por lo tanto, aquí de nuevo considerar un problema, mayor ++ i e i ++ que eficiente?

Puede ser visto por el ejemplo anterior, si el incremento del resultado de la expresión aritmética, no se utiliza, pero sólo dos operación simple para aumentar un número, entonces el prefijo efecto y el método de postfijo es el mismo método, y luego considerar cuidado, el tipo de datos del objeto si la operación es un tipo int común o un sistema incorporado en los tipos de datos en general, que la eficiencia no es del todo malo.

Sin embargo, si la ejecución de i ++, i en (sobre todo si yo era una especie de cosa) es un tipo de datos definido por sí mismo? Prefijo de fórmula (++ i) para devolver una referencia al objeto, y postfix (i ++) debe devolver el valor del objeto, que tendrán una replicación mayor sobrecarga, causando una eficacia reducida, por lo tanto, resultar en una referencias del estilo retorno prefijo, ciertamente mayor eficiencia más. En consecuencia, en el procesamiento de datos de la variable independiente tipo definido, para hacer uso de las fórmulas más eficientes prefijo!

Añadido: ¿Qué es los tipos de datos incorporados? A: se refiere generalmente a los tipos de datos por defecto C ++, tales como: int, double, float, char, y así sucesivamente.

experiencia

  • Prefijo y postfix diferencia es que, cuando se usa en conjunción con otras operaciones cuando el prefijo se incrementa para realizar operaciones, las operaciones realizadas en conjunto; el sufijo es sólo invierte.
  • Fórmula prefijo y diferencias de eficiencia postfix: 1) Para construido en-tipos de datos, no la eficiencia diferencia; 2) para el tipo de datos de auto-definido, un mayor eficiencia de fórmula prefijo.
  • Prefijo y eficiencia postfix distinguen esencialmente: devuelve una referencia al tipo de prefijo, valor de retorno postfix es.
Publicados 271 artículos originales · ganado elogios 8 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/qq_17846375/article/details/104879088
Recomendado
Clasificación