CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
OPERADORES Y EXPRESIONES EN C
1.- OPERADORES ARITMÉTICOS
Hay cinco operadores aritméticos binarios en C:
Operador Propósito
+ adición
- sustracción
* multiplicación
/ división
% resto de división entera
(módulo)
Ej: Si a=10, Expresión Valor
b=3, a / b 3
x=15, x / y 6.25
y=0 a % b 1
También hay varios operadores monoarios en C:
Operador Propósito
- menos monoario
++ operador de incremento
-- operador de decremento
Ej: Si i=10, Expresión Valor
a=0, i 10
-i -10
++i , i++ 11
--i , i-- 9
a=++i * 2 i=11 , a=22
a=i++ * 2 i=11 , a=20
La precedencia y asociatividad (orden de evaluación ) de todos los operadores aparece detallada en el Apéndice C.
- OPERADORES RELACIONALES Y LÓGICOS
En C existen cuatro operadores relacionales:
Operador Significado
< menor que
<= menor o igual que
> mayor
>= mayor o igual que
Todos tienen la misma precedencia que es menor que la de los operadores aritméticos.
Les siguen en precedencia los operadores de igualdad :
Operador Significado
== igual que
!= no igual que
En ambos la asociatividad es de izquierda a derecha.
Estos seis operadores se usan para formar expresiones lógicas cuyo resultado será cierto o falso. Por tanto, la expresión resultante será de tipo entero ya que cierto se representa en C con un 1 y falso con un 0. Además, cualquier entero mayor que 0 se interpreta como cierto.
Existen también dos conectivas lógicas que afectan siempre a dos expresiones lógicas:
Operador Significado
&& AND
| | OR
Por último, existe el operador unitario de negación : ! NOT
Ej: Si i=1, Expresión Interpretación Valor
j=2, i<j cierto 1
k=3, (j+k) > (i+5) falso 0
c='v' j==2 cierto 1
k!=3 falso 0
(i<j) && (c=='v') cierto 1
(i<0) | | (k!=3) | | (k) cierto 1
! (j<k) falso 0
Las expresiones lógicas compuestas formadas por varias expresiones lógicas simples unidas por los operadores lógicos && y | | se evalúan de izquierda a derecha, pero sólo hasta que se ha establecido el valor cierto/falso del conjunto. Por tanto, una expresión lógica compuesta no siempre se evalúa en su totalidad.
Ej: Si i=1, Expresión Interpretación Valor
j=2, c=‘v’, (i>j)) && (c==‘v’) falso 0
3.- OPERADORES DE ASIGNACIÓN
El operador de asignación más usado es el operador = . Las expresiones de asignación que utilizan este operador tienen la forma:
identificador = expresión
Tener en cuenta que el tipo de una expresión de asignación es el de su operando izquierdo.
Ej: Si int i, j Expresión Valor de i
j=5, i = 3.3 3
i = 3.9 3
i = -3.9 -3
i = j / 2 2
i = 2 * j / 2 5
i = 2 * (j / 2) 4
i = 'x' 120
i = 'x' / 3 40
En C están permitidas las asignaciones múltiples:
identificador1 = identificador2 = = expresión
En estos casos, las asignaciones se efectúan de derecha a izquierda. Es decir:
id1 = id2 = expresión equivale a id1 = (id2 = expresión)
Existen otros cinco operadores de asignación: +=, -=, *=, /= y %=. Las expresiones de asignación correspondientes son:
expresión1 += expresión2
expresión1 -= expresión2
expresión1 *= expresión2
expresión1 /= expresión2
expresión1 %= expresión2
donde
exp1 += exp2 equivale a exp1 = exp1 + exp2
exp1 -= exp2 equivale a exp1 = exp1 - exp2
exp1 *= exp2 equivale a exp1 = exp1 * exp2
exp1 /= exp2 equivale a exp1 = exp1 / exp2
exp1 %= exp2 equivale a exp1 = exp1 % exp2
Lo reflejado en las citas anteriores son equivalencias funcionales, es decir, el resultado es el mismo. Sin embargo, para C las primeras son incrementos y las segundas asignaciones. Consecuentemente, la forma de realizarlas y el tiempo consumido son distintos. Es más rápido el formato x=, donde x = .
Ej: Si int i, j (i=5 y j=7) y float f, g (f=5.5 y g=-3.25)
Expresión Expresión equivalente Valor final
i += 5 i = i + 5 10
f -= g f = f - g 8.75
j *= i - 3 j = j * (i - 3) 14
i %= j - 2 i = i % (j - 2) 0
4.- CONVERSIONES DE TIPOS
Los operandos de distintos tipos que aparecen en una expresión se convierten a un mismo tipo de acuerdo con unas cuantas reglas (Apéndice D).
Todo char de una expresión aritmética se convierte automáticamente a int.
A todo operador aritmético se le aplica la siguiente secuencia de reglas de conversión:
- Si algún operando es long double, el otro se convierte en double y el resultado es long double.
- En otro caso, si algún operando es double, el otro se convierte en double y el resultado es double.
- En otro caso, si algún operando es float, el otro se convierte en float y el resultado es float. (En algunas versiones de C float se convierte en double)
- En otro caso, si algún operando es unsigned long int, el otro se convierte en unsigned long int y el resultado es unsigned long int.
- En otro caso, si algún operando es long int y el otro es unsigned int entonces:
a) Si unsigned int puede convertirse a long int, se convierte y el resultado es long int.
b) En otro caso, ambos operandos se convierten a unsigned long int y el resultado es unsigned long int.
- En otro caso, si algún operando es long int, el otro será convertido a long int y el resultado será long int.
- En otro caso, si algún operando es unsigned int, el otro será convertido a unsigned int y el resultado será unsigned int.
- Si no se puede aplicar ninguna de las reglas anteriores, los operandos deben ser de tipo int y el resultado será int.
En las asignaciones, el valor de la parte derecha se convierte al tipo de la izquierda, que es el tipo del resultado.
Los argumentos de las funciones son expresiones y, por tanto, también se ven afectados por las reglas de conversión.
5.- EL OPERADOR CONDICIONAL
Una expresión que utiliza el operador condicional (?:) se denomina expresión condicional y se escribe de la forma siguiente:
expresión1 ? expresión2 : expresión3
Cuando se evalúa una expresión condicional, primero se evalúa expresión1. Si expresión1 es cierta (su valor es no nulo) entonces expresión2 es evaluada y este es el valor de la expresión condicional. Si expresión1 es falsa (si valor es cero) entonces se evalúa expresión3 y este es el valor de la expresión condicional.
(i<0) ? 1 : 0 Si i es menor que 0, el valor de la expresión condicional es 1.
Si no, el valor de la expresión condicional es 0.
negativo = (i<0) ? 1 : 0
min = (x<y) ? x : y
6. FUNCIONES DE BIBLIOTECA
El lenguaje C se acompaÑa de un cierto número de funciones de biblioteca que realizan operaciones y cálculos de uso frecuente (Apéndice H).
Para utilizar una función de biblioteca puede ser necesario incluir información adicional en nuestro programa. Esto se lleva a cabo mediante la sentencia de preprocesador #include :
#include <nombre_de_archivo>
Ej: Para poder utilizar la función printf (escribe datos en el dispositivo de salida
estándar) necesitamos incluir el fichero de cabecera stdio.h mediante la orden
#include <stdio.h>
El delimitador <> indica que el fichero *.h se encuentra en el path del preprocesador. Dicho delimitador se debe cambiar por '' si el fichero referenciado está en el directorio de trabajo, que no forma parte del path del preprocesador.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 686
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved