06. Operadores, Asociatividad y Precedencia.pdf
Document Details
Uploaded by Deleted User
Tags
Full Transcript
Operadores, Asociatividad y Precedencia Expresiones ◦ Una expresión se compone de uno o más operandos y produce un resultado cuando se evalúa. ◦ La forma más simple de una expresión es un único literal o variable. ◦ El resultado de dicha expresión es el valor de la variable o literal. ◦ Las...
Operadores, Asociatividad y Precedencia Expresiones ◦ Una expresión se compone de uno o más operandos y produce un resultado cuando se evalúa. ◦ La forma más simple de una expresión es un único literal o variable. ◦ El resultado de dicha expresión es el valor de la variable o literal. ◦ Las expresiones más complicadas se forman a partir de un operador y uno o más operandos. ◦ Hay algunos conceptos fundamentales que afectan cómo se evalúan las expresiones. Expresiones ◦ Hay operadores unarios y operadores binarios. ◦ Los operadores unarios, como la dirección de (&) y la desreferencia (*), actúan sobre un operando. ◦ Los operadores binarios, como la igualdad (==) y la multiplicación (*), actúan sobre dos operandos. ◦ También hay un operador ternario que toma tres operandos y un operador, llamada de función, que toma un número ilimitado de operandos. ◦ Algunos símbolos, como *, se utilizan como operador unario (desreferencia) y binario (multiplicación). ◦ El contexto en el que se utiliza un símbolo determina si el símbolo representa un operador unario o binario. Los usos de dichos símbolos son independientes. Operadores de agrupación y operandos ◦ Comprender expresiones con múltiples operadores requiere comprender la precedencia y asociatividad de los operadores y puede depender del orden de evaluación de los operandos. ◦ Por ejemplo, el resultado de la siguiente expresión depende de cómo se agrupan los operandos en los operadores: 5 + 10 * 20/2; ◦ Los operandos del operador * podrían ser 10 y 20, o 10 y 20/2, o 15 y 20, o 15 y 20/2. Conversiones de operandos ◦ Como parte de la evaluación de una expresión, los operandos suelen convertirse de un tipo a otro. ◦ Por ejemplo, los operadores binarios normalmente esperan operandos del mismo tipo. ◦ Estos operadores se pueden utilizar en operandos con diferentes tipos siempre que los operandos se puedan convertir a un tipo común. ◦ Aunque las reglas son algo complicadas, en la mayoría de los casos las conversiones se producen de manera simple. ◦ Por ejemplo, podemos convertir un número entero a punto flotante y viceversa, pero no podemos convertir un tipo de puntero a punto flotante. Lo que puede resultar un poco sorprendente es que los operandos de tipo entero pequeños (por ejemplo, bool, char, short, etc.) generalmente se promueven a un tipo entero más grande, normalmente int. Sobrecarga de operadores ◦ El lenguaje define lo que significan los operadores cuando se aplican a tipos nativos y compuestos. También podemos definir qué significan la mayoría de los operadores cuando se aplican a tipos de clases. ◦ Debido a que tales definiciones dan un significado alternativo a un símbolo de operador existente, nos referimos a ellas como operadores sobrecargados. Los operadores >> y