Академический Документы
Профессиональный Документы
Культура Документы
http://c.conclase.net/curso/?cap=014#inicio
C++ con Clase Curso de C++ Curso de C++ Estilo: Visitas desde 2000-09-09 Usuarios en lnea Con Clase C++ Win API 32 HTML y CSS Grficos MySQL Artculos Listas << < > >> Curso Info Bibliotecas Tabla Comentario Introduccin 1 Toma de contacto 2 Tipos de variables I 3 Funciones I 4 Operadores I 5 Sentencias 6 Declaracin de variables 7 Notacin 8 Cadenas de caracteres 9 Conversin de tipos 10 Variables II: Arrays 11 Objetos III: Estructuras 12 Objetos IV: Punteros 1 13 Operadores II 14 Oper III: Precedencia Ejercicios 14 15 Funcs II: valor y referencia 16 Variables V: Uniones 17 Variables VI: Punteros 2 18 Operadores IV 19 Definicin de tipos 20 Funciones III: ms cosas
1 de 4
21/07/2013 19:33
http://c.conclase.net/curso/?cap=014#inicio
21 Funciones IV: Sobrecarga 22 Operadores V: Sobrecarga 23 El preprocesador 24 Funciones V: Recursividad 25 Vbls VII: Almacenamiento 26 Espacios con nombre 27 Clases I: definiciones 28 Declaracin de una clase 29 Constructores 30 Destructores 31 El puntero this 32 Sistema de proteccin 33 Modificadores 34 Ms sobre las funciones 35 Operadores sobrecargados 36 Herencia 37 Funciones virtuales 38 Derivacin mltiple 39 Trabajar con ficheros 40 Plantillas 41 Punteros a miembros 42 Castings en C++ 43 Manejo de excepciones A Codificacin ASCII B Palabras reservadas C Bibliotecas estndar D Trigrafos y smbolos alt. E Streams
2 de 4
21/07/2013 19:33
http://c.conclase.net/curso/?cap=014#inicio
* (multiplicacin) / % + - (operadores binarios) << >> < <= > >= == != & (bitwise AND) ^ (bitwise XOR) | (bitwise OR) && || ?: = *= /= %= += -= &= ^= |= <<= >>= ,
Izquierda a derecha Izquierda a derecha Izquierda a derecha Izquierda a derecha Izquierda a derecha Izquierda a derecha Izquierda a derecha Izquierda a derecha Izquierda a derecha Izquierda a derecha Derecha a izquierda Derecha a izquierda Izquierda a derecha
La tabla muestra las precedencias de los operadores en orden decreciente, los de mayor precedencia en la primera fila. Dentro de la misma fila, la prioridad se decide por el orden de asociatividad. La asociatividad nos dice en que orden se aplican los operadores en expresiones complejas, por ejemplo:
int a, b, c, d, e; b = c = d = e = 10;
El operador de asignacin "=" se asocia de derecha a izquierda, es decir, primero se aplica "e = 10", despus "d = e", etc. O sea, a todas las variables se les asigna el mismo valor: 10.
a = b * c + d * e;
El operador * tiene mayor precedencia que + e =, por lo tanto se aplica antes, despus se aplica el operador +, y por ltimo el =. El resultado final ser asignar a "a" el valor 200.
int m[10] = {10,20,30,40,50,60,70,80,90,100}, *f; f = &m[5]; ++*f; cout << *f << endl;
La salida de este ejemplo ser, 61, los operadores unitarios tienen todos la misma precedencia, y se asocian de derecha a izquierda. Primero se aplica el *, y despus el incremento al contenido de f.
f = &m[5]; *f--; cout << *f << endl;
La salida de este ejemplo ser, 50. Primero se aplica el decremento al puntero, y despus el *.
a = b * (c + d) * e;
Ahora el operador de mayor peso es (), ya que los parntesis estn en el grupo de mayor precedencia. Todo lo que hay entre los parntesis se evala antes que cualquier otra cosa. Primero se evala la suma, y despus las multiplicaciones. El resultado ser asignar a la variable "a" el valor 2000. Este es el sistema para eludir las precedencias por defecto, si queremos evaluar antes una suma que un producto, debemos usar parntesis.
3 de 4
21/07/2013 19:33
http://c.conclase.net/curso/?cap=014#inicio
4 de 4
21/07/2013 19:33